{"version":3,"file":"main.51cda002ce568a35.js","mappings":"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gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,kBACA,qBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA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CV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,SACV,OAAU,UAEd,SAASC,GAAkBt6W,IAEvB,OAAOA,GAAK7D,QAAQ,oBADLojD,IAAM86T,GAAW96T,KAAMA,GAE1C,CAEA,MAAMg7T,GACF/1W,YAAYg2W,GAAWC,IACnBh2W,KAAK+1W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","names":["EIDDESIGN","bannerCarousel","loop","mouseDrag","center","touchDrag","pullDrag","dots","rtl","margin","items","autoWidth","navSpeed","responsive","nav","projectName","en","ar","ROLES","STUDENT","TEACHER","PARENT","ADMIN","logo","light","dark","light_sm","dark_sm","GetTimeInString","timeInMinutes","hours","Math","floor","minutes","hoursString","minutesString","downloadData","data","contentDispositionHeader","contentType","matches","exec","filename","decodeURIComponent","replace","blob","Blob","type","endings","link","document","createElement","href","URL","createObjectURL","download","body","appendChild","click","revokeObjectURL","removeChild","responseErrors","DuplicateName","Error","CompanyTypeNotEqualsProjectType","LOCKED","FieldRequired","InvalidCRN","MaxFieldLength","MinFieldLength","UserNotFound","InvalidLogin","DuplicateUser","DuplicateEmail","DuplicatePhoneNumber","NotFound","CantDelete","DuplicateCode","UserAlreadyLoggedIn","InvalidEmailAddress","InvalidPhoneNumber","Expired","CantLockYourself","DuplicateCrn","InvalidUsername","InvalidCrn","InvalidPasswordRequirements","DuplicateIdNumber","InvalidStartDate","InvalidEndDate","InvalidDate","ParentNotFound","ProjectNotFound","CantLockAdmin","ExceedValue","CategoryNotFound","FileNotFound","BadFile","AccessDenied","LastValueIsBiggerThanCurrentValue","CantCreateUser","TimeOut","UnAuthorize","SWAL","title","text","confirmCallback","options","errmsg","Swal","icon","titleText","confirmButtonColor","confirmButtonText","cancelButtonText","SWALConfirmation","callableFunction","resultText","actionText","showCancelButton","showLoaderOnConfirm","preConfirm","isConfirmed","Promise","resolve","reject","subscribe","next","res","error","allowOutsideClick","SWAL_Celebrate","iconHtml","backdrop","numberMoreThanZeroPattern","particlesOptions","background","color","value","fpsLimit","styles","interactivity","events","onClick","enable","mode","onHover","resize","modes","push","quantity","repulse","distance","duration","particles","move","direction","outModes","default","random","speed","min","max","straight","number","density","limit","opacity","shape","image","src","size","detectRetina","fullScreen","zLayers","ApiConfiguration","_class","constructor","this","rootUrl","factory","ɵfac","providedIn","BaseService","config","http","_rootUrl","i0","i1","i2","ParameterCodecInstance","ParameterCodec","encodeKey","key","encodeURIComponent","encodeValue","decodeKey","decodeValue","Parameter","name","defaultStyle","defaultExplode","style","explode","serializeValue","separator","Array","map","v","split","join","array","Object","keys","propVal","String","PathParameter","super","append","path","prefix","alreadySerialized","result","QueryParameter","params","HeaderParameter","headers","RequestBuilder","operationPath","method","_path","Map","_query","_header","set","query","header","_bodyContentType","pairs","val","formValue","formDataValue","_bodyContent","p","formData","FormData","fromDataObjectToFormData","toAppend","Date","toISOString","JSON","stringify","parentKey","arr","forEach","arrItem","index","entries","build","pathParam","values","url","httpParams","HttpParams","encoder","queryParam","httpHeaders","HttpHeaders","accept","headerParam","HttpRequest","toUpperCase","responseType","reportProgress","context","apiAccountAddUserPost","rb","PATH","request","pipe","filter","r","HttpResponse","apiAccountAddUserPost$Plain","apiAccountChangePasswordPost","currentPassword","newPassword","clone","apiAccountChangePasswordPost$Plain","apiAccountDeleteUsersDelete","userId","apiAccountDeleteUsersDelete$Plain","apiAccountGet","apiAccountGet$Plain","apiAccountGetUserByIdGet","apiAccountGetUserByIdGet$Plain","apiAccountGetUsersGet","pageSize","pageNumbe","SearchValue","apiAccountGetUsersGet$Plain","apiAccountLoginPost","apiAccountLoginPost$Plain","apiAccountRegisterParentPost","apiAccountRegisterParentPost$Plain","apiAccountRegisterStudentPost","apiAccountRegisterStudentPost$Plain","apiAccountUpdatePasswordPost","apiAccountUpdatePasswordPost$Plain","AccountService","apiAccountLoginPost$Plain$Response","apiAccountLoginPost$Response","apiAccountAddUserPost$Plain$Response","apiAccountAddUserPost$Response","apiAccountGetUsersGet$Plain$Response","apiAccountGetUsersGet$Response","apiAccountGetUserByIdGet$Plain$Response","apiAccountGetUserByIdGet$Response","apiAccountDeleteUsersDelete$Plain$Response","apiAccountDeleteUsersDelete$Response","apiAccountGet$Plain$Response","apiAccountGet$Response","apiAccountRegisterParentPost$Plain$Response","apiAccountRegisterParentPost$Response","apiAccountRegisterStudentPost$Plain$Response","apiAccountRegisterStudentPost$Response","apiAccountChangePasswordPost$Plain$Response","apiAccountChangePasswordPost$Response","apiAccountUpdatePasswordPost$Plain$Response","apiAccountUpdatePasswordPost$Response","ApiAccountLoginPostPath","ApiAccountAddUserPostPath","ApiAccountGetUsersGetPath","ApiAccountGetUserByIdGetPath","ApiAccountDeleteUsersDeletePath","ApiAccountGetPath","ApiAccountRegisterParentPostPath","ApiAccountRegisterStudentPostPath","ApiAccountChangePasswordPostPath","ApiAccountUpdatePasswordPostPath","apiActivityGet","apiActivityGet$Plain","apiActivityIdDelete","id","undefined","apiActivityIdGet","apiActivityIdGet$Plain","apiActivityIdPut","apiActivityPost","ActivityService","apiActivityGet$Plain$Response","apiActivityGet$Response","apiActivityPost$Response","apiActivityIdGet$Plain$Response","apiActivityIdGet$Response","apiActivityIdPut$Response","apiActivityIdDelete$Response","ApiActivityGetPath","ApiActivityPostPath","ApiActivityIdGetPath","ApiActivityIdPutPath","ApiActivityIdDeletePath","apiBannerGet","apiBannerGet$Plain","apiBannerIdDelete","apiBannerIdGet","apiBannerIdGet$Plain","apiBannerIdPut","apiBannerPost","BannerService","apiBannerGet$Plain$Response","apiBannerGet$Response","apiBannerPost$Response","apiBannerIdGet$Plain$Response","apiBannerIdGet$Response","apiBannerIdPut$Response","apiBannerIdDelete$Response","ApiBannerGetPath","ApiBannerPostPath","ApiBannerIdGetPath","ApiBannerIdPutPath","ApiBannerIdDeletePath","apiChapterChangeStatusPut","status","apiChapterGet","courseId","apiChapterGet$Plain","apiChapterIdDelete","apiChapterIdGet","apiChapterIdGet$Plain","apiChapterIdPut","apiChapterPost","ChapterService","apiChapterGet$Plain$Response","apiChapterGet$Response","apiChapterPost$Response","apiChapterIdGet$Plain$Response","apiChapterIdGet$Response","apiChapterIdPut$Response","apiChapterIdDelete$Response","apiChapterChangeStatusPut$Response","ApiChapterGetPath","ApiChapterPostPath","ApiChapterIdGetPath","ApiChapterIdPutPath","ApiChapterIdDeletePath","ApiChapterChangeStatusPutPath","apiCommentChangeStatusPut","apiCommentGetAllCommentsForAdminGet","VId","apiCommentGetAllCommentsForAdminGet$Plain","apiCommentGetAllCommentsGet","apiCommentGetAllCommentsGet$Plain","apiCommentGetPinnedCommentsForAdminGet","apiCommentGetPinnedCommentsForAdminGet$Plain","apiCommentIdDelete","apiCommentIdGet","apiCommentIdGet$Plain","apiCommentIdPut","apiCommentPost","CommentService","apiCommentGetAllCommentsGet$Plain$Response","apiCommentGetAllCommentsGet$Response","apiCommentGetAllCommentsForAdminGet$Plain$Response","apiCommentGetAllCommentsForAdminGet$Response","apiCommentGetPinnedCommentsForAdminGet$Plain$Response","apiCommentGetPinnedCommentsForAdminGet$Response","apiCommentIdGet$Plain$Response","apiCommentIdGet$Response","apiCommentIdPut$Response","apiCommentIdDelete$Response","apiCommentPost$Response","apiCommentChangeStatusPut$Response","ApiCommentGetAllCommentsGetPath","ApiCommentGetAllCommentsForAdminGetPath","ApiCommentGetPinnedCommentsForAdminGetPath","ApiCommentIdGetPath","ApiCommentIdPutPath","ApiCommentIdDeletePath","ApiCommentPostPath","ApiCommentChangeStatusPutPath","apiCourseAcceptStudentPut","apiCourseChangeStatusPut","apiCourseGet","teacherId","subjectId","apiCourseGet$Plain","apiCourseGetAcceptedStudentGet","apiCourseGetAcceptedStudentGet$Plain","apiCourseGetPinnedStudentGet","courseid","apiCourseGetPinnedStudentGet$Plain","apiCourseGetTopCourseGet","apiCourseGetTopCourseGet$Plain","apiCourseIdDelete","apiCourseIdGet","apiCourseIdGet$Plain","apiCourseIdPut","apiCoursePost","apiCourseRejectStudentDelete","CourseService","apiCourseGet$Plain$Response","apiCourseGet$Response","apiCoursePost$Response","apiCourseGetTopCourseGet$Plain$Response","apiCourseGetTopCourseGet$Response","apiCourseGetAcceptedStudentGet$Plain$Response","apiCourseGetAcceptedStudentGet$Response","apiCourseChangeStatusPut$Response","apiCourseGetPinnedStudentGet$Plain$Response","apiCourseGetPinnedStudentGet$Response","apiCourseIdGet$Plain$Response","apiCourseIdGet$Response","apiCourseIdPut$Response","apiCourseIdDelete$Response","apiCourseAcceptStudentPut$Response","apiCourseRejectStudentDelete$Response","ApiCourseGetPath","ApiCoursePostPath","ApiCourseGetTopCourseGetPath","ApiCourseGetAcceptedStudentGetPath","ApiCourseChangeStatusPutPath","ApiCourseGetPinnedStudentGetPath","ApiCourseIdGetPath","ApiCourseIdPutPath","ApiCourseIdDeletePath","ApiCourseAcceptStudentPutPath","ApiCourseRejectStudentDeletePath","apiExamAddExamPost","apiExamChangeStatusPut","apiExamDeleteExamIdDelete","apiExamGetAllExamsGet","apiExamGetAllExamsGet$Plain","apiExamGetExamByIdIdGet","apiExamGetExamByIdIdGet$Plain","apiExamGetExamQuesionsForEditGet","ExamId","apiExamGetExamQuesionsForEditGet$Plain","apiExamGetExamQuesionsForStudentGet","apiExamGetExamQuesionsForStudentGet$Plain","apiExamUpdateExamPut","ExamService","apiExamGetAllExamsGet$Plain$Response","apiExamGetAllExamsGet$Response","apiExamGetExamByIdIdGet$Plain$Response","apiExamGetExamByIdIdGet$Response","apiExamGetExamQuesionsForStudentGet$Plain$Response","apiExamGetExamQuesionsForStudentGet$Response","apiExamGetExamQuesionsForEditGet$Plain$Response","apiExamGetExamQuesionsForEditGet$Response","apiExamChangeStatusPut$Response","apiExamAddExamPost$Response","apiExamUpdateExamPut$Response","apiExamDeleteExamIdDelete$Response","ApiExamGetAllExamsGetPath","ApiExamGetExamByIdIdGetPath","ApiExamGetExamQuesionsForStudentGetPath","ApiExamGetExamQuesionsForEditGetPath","ApiExamChangeStatusPutPath","ApiExamAddExamPostPath","ApiExamUpdateExamPutPath","ApiExamDeleteExamIdDeletePath","apiLevelYearsChangeStatusPut","apiLevelYearsGetAllLevelYearsByLevelIdGet","levelId","apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain","apiLevelYearsGetAllLevelYearsGet","TeacherId","apiLevelYearsGetAllLevelYearsGet$Plain","apiLevelYearsIdDelete","apiLevelYearsIdGet","apiLevelYearsIdGet$Plain","apiLevelYearsIdPut","apiLevelYearsPost","LevelYearsService","apiLevelYearsGetAllLevelYearsGet$Plain$Response","apiLevelYearsGetAllLevelYearsGet$Response","apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Response","apiLevelYearsGetAllLevelYearsByLevelIdGet$Response","apiLevelYearsChangeStatusPut$Response","apiLevelYearsIdGet$Plain$Response","apiLevelYearsIdGet$Response","apiLevelYearsIdPut$Response","apiLevelYearsIdDelete$Response","apiLevelYearsPost$Response","ApiLevelYearsGetAllLevelYearsGetPath","ApiLevelYearsGetAllLevelYearsByLevelIdGetPath","ApiLevelYearsChangeStatusPutPath","ApiLevelYearsIdGetPath","ApiLevelYearsIdPutPath","ApiLevelYearsIdDeletePath","ApiLevelYearsPostPath","apiLevelChangeStatusPut","apiLevelGet","apiLevelGet$Plain","apiLevelIdDelete","apiLevelIdGet","apiLevelIdGet$Plain","apiLevelIdPut","apiLevelPost","LevelService","apiLevelGet$Plain$Response","apiLevelGet$Response","apiLevelPost$Response","apiLevelIdGet$Plain$Response","apiLevelIdGet$Response","apiLevelIdPut$Response","apiLevelIdDelete$Response","apiLevelChangeStatusPut$Response","ApiLevelGetPath","ApiLevelPostPath","ApiLevelIdGetPath","ApiLevelIdPutPath","ApiLevelIdDeletePath","ApiLevelChangeStatusPutPath","apiNotificationGetAdminNotifcationsGet","pageNume","apiNotificationGetAdminNotifcationsGet$Plain","apiNotificationGetStudentNotifcationsGet","apiNotificationGetStudentNotifcationsGet$Plain","apiNotificationReadAllNotificationPut","apiNotificationReadAllNotificationPut$Plain","apiNotificationReadNotificationPut","notifId","apiNotificationReadNotificationPut$Plain","apiNotificationUnReadNotificationCountGet","parseFloat","apiNotificationUnReadNotificationCountGet$Plain","NotificationService","apiNotificationGetAdminNotifcationsGet$Plain$Response","apiNotificationGetAdminNotifcationsGet$Response","apiNotificationGetStudentNotifcationsGet$Plain$Response","apiNotificationGetStudentNotifcationsGet$Response","apiNotificationUnReadNotificationCountGet$Plain$Response","apiNotificationUnReadNotificationCountGet$Response","apiNotificationReadAllNotificationPut$Plain$Response","apiNotificationReadAllNotificationPut$Response","apiNotificationReadNotificationPut$Plain$Response","apiNotificationReadNotificationPut$Response","ApiNotificationGetAdminNotifcationsGetPath","ApiNotificationGetStudentNotifcationsGetPath","ApiNotificationUnReadNotificationCountGetPath","ApiNotificationReadAllNotificationPutPath","ApiNotificationReadNotificationPutPath","apiParentAcceptParentStudentPost","ParentId","apiParentAddParentStudentRequestPost","StId","apiParentGetParentRequestsForParentGet","apiParentGetParentRequestsForParentGet$Plain","apiParentGetStudentByCodeParentGet","code","apiParentGetStudentByCodeParentGet$Plain","apiParentGetStudentByIdGet","apiParentGetStudentByIdGet$Plain","apiParentGetStudentDashboardDataGet","studentId","apiParentGetStudentDashboardDataGet$Plain","apiParentGetStudentGet","apiParentGetStudentGet$Plain","apiParentRegisterParentPost","apiParentRegisterParentPost$Plain","ParentService","apiParentRegisterParentPost$Plain$Response","apiParentRegisterParentPost$Response","apiParentAddParentStudentRequestPost$Response","apiParentAcceptParentStudentPost$Response","apiParentGetParentRequestsForParentGet$Plain$Response","apiParentGetParentRequestsForParentGet$Response","apiParentGetStudentGet$Plain$Response","apiParentGetStudentGet$Response","apiParentGetStudentDashboardDataGet$Plain$Response","apiParentGetStudentDashboardDataGet$Response","apiParentGetStudentByIdGet$Plain$Response","apiParentGetStudentByIdGet$Response","apiParentGetStudentByCodeParentGet$Plain$Response","apiParentGetStudentByCodeParentGet$Response","ApiParentRegisterParentPostPath","ApiParentAddParentStudentRequestPostPath","ApiParentAcceptParentStudentPostPath","ApiParentGetParentRequestsForParentGetPath","ApiParentGetStudentGetPath","ApiParentGetStudentDashboardDataGetPath","ApiParentGetStudentByIdGetPath","ApiParentGetStudentByCodeParentGetPath","apiQuestionAddEditQuestionDtoPut","apiQuestionGet","apiQuestionGet$Plain","apiQuestionIdDelete","apiQuestionIdGet","apiQuestionIdGet$Plain","apiQuestionPost","QuestionService","apiQuestionGet$Plain$Response","apiQuestionGet$Response","apiQuestionPost$Response","apiQuestionIdGet$Plain$Response","apiQuestionIdGet$Response","apiQuestionIdDelete$Response","apiQuestionAddEditQuestionDtoPut$Response","ApiQuestionGetPath","ApiQuestionPostPath","ApiQuestionIdGetPath","ApiQuestionIdDeletePath","ApiQuestionAddEditQuestionDtoPutPath","apiRateCourseGet","apiRateCourseGet$Plain","apiRateCourseIdDelete","apiRateCourseIdGet","apiRateCourseIdGet$Plain","apiRateCoursePost","RateCourseService","apiRateCourseGet$Plain$Response","apiRateCourseGet$Response","apiRateCoursePost$Response","apiRateCourseIdGet$Plain$Response","apiRateCourseIdGet$Response","apiRateCourseIdDelete$Response","ApiRateCourseGetPath","ApiRateCoursePostPath","ApiRateCourseIdGetPath","ApiRateCourseIdDeletePath","apiRateTeacherGet","apiRateTeacherGet$Plain","apiRateTeacherIdDelete","apiRateTeacherIdGet","apiRateTeacherIdGet$Plain","apiRateTeacherPost","RateTeacherService","apiRateTeacherGet$Plain$Response","apiRateTeacherGet$Response","apiRateTeacherPost$Response","apiRateTeacherIdGet$Plain$Response","apiRateTeacherIdGet$Response","apiRateTeacherIdDelete$Response","ApiRateTeacherGetPath","ApiRateTeacherPostPath","ApiRateTeacherIdGetPath","ApiRateTeacherIdDeletePath","apiRateVideoGet","apiRateVideoGet$Plain","apiRateVideoIdDelete","apiRateVideoIdGet","apiRateVideoIdGet$Plain","apiRateVideoPost","RateVideoService","apiRateVideoGet$Plain$Response","apiRateVideoGet$Response","apiRateVideoPost$Response","apiRateVideoIdGet$Plain$Response","apiRateVideoIdGet$Response","apiRateVideoIdDelete$Response","ApiRateVideoGetPath","ApiRateVideoPostPath","ApiRateVideoIdGetPath","ApiRateVideoIdDeletePath","apiStatsGetAdminDashboardDataGet","apiStatsGetAdminDashboardDataGet$Plain","apiStatsGetStudentDashboardDataGet","apiStatsGetStudentDashboardDataGet$Plain","StatsService","apiStatsGetAdminDashboardDataGet$Plain$Response","apiStatsGetAdminDashboardDataGet$Response","apiStatsGetStudentDashboardDataGet$Plain$Response","apiStatsGetStudentDashboardDataGet$Response","ApiStatsGetAdminDashboardDataGetPath","ApiStatsGetStudentDashboardDataGetPath","apiStudentExamAddStudentExamAnswerPost","apiStudentExamAddStudentExamAnswerPost$Plain","apiStudentExamCorrectArticleAnswerPost","apiStudentExamCorrectArticleAnswerPost$Plain","apiStudentExamFinishStudentExamGet","apiStudentExamFinishStudentExamGet$Plain","apiStudentExamGetNewStudentExamsGet","apiStudentExamGetNewStudentExamsGet$Plain","apiStudentExamGetSolvedStudentExamsForStudentGet","apiStudentExamGetSolvedStudentExamsForStudentGet$Plain","apiStudentExamGetStudentAnswerForExamGet","apiStudentExamGetStudentAnswerForExamGet$Plain","apiStudentExamGetStudentAnswerModelForExamGet","apiStudentExamGetStudentAnswerModelForExamGet$Plain","apiStudentExamGetStudentExamForAdminGet","pageNumber","searchTerm","apiStudentExamGetStudentExamForAdminGet$Plain","apiStudentExamGetStudentExamSolvedForAdminGet","apiStudentExamGetStudentExamSolvedForAdminGet$Plain","apiStudentExamRemoveStudentExamForAdminDelete","apiStudentExamRemoveStudentExamForAdminDelete$Plain","apiStudentExamStartExamPost","examId","apiStudentExamStartExamPost$Plain","StudentExamService","apiStudentExamStartExamPost$Plain$Response","apiStudentExamStartExamPost$Response","apiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Response","apiStudentExamGetSolvedStudentExamsForStudentGet$Response","apiStudentExamFinishStudentExamGet$Plain$Response","apiStudentExamFinishStudentExamGet$Response","apiStudentExamGetNewStudentExamsGet$Plain$Response","apiStudentExamGetNewStudentExamsGet$Response","apiStudentExamAddStudentExamAnswerPost$Plain$Response","apiStudentExamAddStudentExamAnswerPost$Response","apiStudentExamGetStudentAnswerForExamGet$Plain$Response","apiStudentExamGetStudentAnswerForExamGet$Response","apiStudentExamGetStudentAnswerModelForExamGet$Plain$Response","apiStudentExamGetStudentAnswerModelForExamGet$Response","apiStudentExamGetStudentExamForAdminGet$Plain$Response","apiStudentExamGetStudentExamForAdminGet$Response","apiStudentExamRemoveStudentExamForAdminDelete$Plain$Response","apiStudentExamRemoveStudentExamForAdminDelete$Response","apiStudentExamGetStudentExamSolvedForAdminGet$Plain$Response","apiStudentExamGetStudentExamSolvedForAdminGet$Response","apiStudentExamCorrectArticleAnswerPost$Plain$Response","apiStudentExamCorrectArticleAnswerPost$Response","ApiStudentExamStartExamPostPath","ApiStudentExamGetSolvedStudentExamsForStudentGetPath","ApiStudentExamFinishStudentExamGetPath","ApiStudentExamGetNewStudentExamsGetPath","ApiStudentExamAddStudentExamAnswerPostPath","ApiStudentExamGetStudentAnswerForExamGetPath","ApiStudentExamGetStudentAnswerModelForExamGetPath","ApiStudentExamGetStudentExamForAdminGetPath","ApiStudentExamRemoveStudentExamForAdminDeletePath","ApiStudentExamGetStudentExamSolvedForAdminGetPath","ApiStudentExamCorrectArticleAnswerPostPath","apiStudentAddStudentPost","apiStudentAddStudentSubjectTeacherPost","apiStudentAddStudentSubjectTeacherPost$Plain","apiStudentChangeStatusPut","apiStudentChangeStudentSubjectTeacherStatusPut","apiStudentGet","apiStudentGet$Plain","apiStudentGetAcceptedStudentsGet","apiStudentGetAcceptedStudentsGet$Plain","apiStudentGetCoursesChapterGet","apiStudentGetCoursesChapterGet$Plain","apiStudentGetCoursesGet","SubId","apiStudentGetCoursesGet$Plain","apiStudentGetParentRequestsForStudentGet","apiStudentGetParentRequestsForStudentGet$Plain","apiStudentGetPindedStudentsGet","apiStudentGetPindedStudentsGet$Plain","apiStudentGetStudentSubjectTeacherExelReportGet","apiStudentGetStudentSubjectTeacherExelReportGet$Plain","apiStudentGetStudentSubjectTeacherForStudentGet","apiStudentGetStudentSubjectTeacherForStudentGet$Plain","apiStudentGetStudentSubjectTeacherGet","apiStudentGetStudentSubjectTeacherGet$Plain","apiStudentIdDelete","apiStudentIdGet","apiStudentIdGet$Plain","apiStudentPut","apiStudentRequestCoursePost","apiStudentRequestCoursePost$Plain","apiStudentUnsubscribeCourseDelete","CourseId","apiStudentWhatchVideoPost","StudentService","apiStudentGetPindedStudentsGet$Plain$Response","apiStudentGetPindedStudentsGet$Response","apiStudentGetAcceptedStudentsGet$Plain$Response","apiStudentGetAcceptedStudentsGet$Response","apiStudentGetCoursesGet$Plain$Response","apiStudentGetCoursesGet$Response","apiStudentGetParentRequestsForStudentGet$Plain$Response","apiStudentGetParentRequestsForStudentGet$Response","apiStudentGetCoursesChapterGet$Plain$Response","apiStudentGetCoursesChapterGet$Response","apiStudentGetStudentSubjectTeacherGet$Plain$Response","apiStudentGetStudentSubjectTeacherGet$Response","apiStudentGetStudentSubjectTeacherExelReportGet$Plain$Response","apiStudentGetStudentSubjectTeacherExelReportGet$Response","apiStudentGetStudentSubjectTeacherForStudentGet$Plain$Response","apiStudentGetStudentSubjectTeacherForStudentGet$Response","apiStudentAddStudentSubjectTeacherPost$Plain$Response","apiStudentAddStudentSubjectTeacherPost$Response","apiStudentChangeStudentSubjectTeacherStatusPut$Response","apiStudentChangeStatusPut$Response","apiStudentUnsubscribeCourseDelete$Response","apiStudentWhatchVideoPost$Response","apiStudentRequestCoursePost$Plain$Response","apiStudentRequestCoursePost$Response","apiStudentGet$Plain$Response","apiStudentGet$Response","apiStudentPut$Response","apiStudentIdGet$Plain$Response","apiStudentIdGet$Response","apiStudentIdDelete$Response","apiStudentAddStudentPost$Response","ApiStudentGetPindedStudentsGetPath","ApiStudentGetAcceptedStudentsGetPath","ApiStudentGetCoursesGetPath","ApiStudentGetParentRequestsForStudentGetPath","ApiStudentGetCoursesChapterGetPath","ApiStudentGetStudentSubjectTeacherGetPath","ApiStudentGetStudentSubjectTeacherExelReportGetPath","ApiStudentGetStudentSubjectTeacherForStudentGetPath","ApiStudentAddStudentSubjectTeacherPostPath","ApiStudentChangeStudentSubjectTeacherStatusPutPath","ApiStudentChangeStatusPutPath","ApiStudentUnsubscribeCourseDeletePath","ApiStudentWhatchVideoPostPath","ApiStudentRequestCoursePostPath","ApiStudentGetPath","ApiStudentPutPath","ApiStudentIdGetPath","ApiStudentIdDeletePath","ApiStudentAddStudentPostPath","apiSubjectChangeStatusPut","apiSubjectGetAllSubjectsGet","levelYearId","apiSubjectGetAllSubjectsGet$Plain","apiSubjectIdDelete","apiSubjectIdGet","apiSubjectIdGet$Plain","apiSubjectIdPut","apiSubjectPost","SubjectService","apiSubjectGetAllSubjectsGet$Plain$Response","apiSubjectGetAllSubjectsGet$Response","apiSubjectIdGet$Plain$Response","apiSubjectIdGet$Response","apiSubjectIdPut$Response","apiSubjectIdDelete$Response","apiSubjectChangeStatusPut$Response","apiSubjectPost$Response","ApiSubjectGetAllSubjectsGetPath","ApiSubjectIdGetPath","ApiSubjectIdPutPath","ApiSubjectIdDeletePath","ApiSubjectChangeStatusPutPath","ApiSubjectPostPath","apiTeacherAddTeacherRequsetsPost","apiTeacherChangeStatusPut","apiTeacherGet","LevelYearId","apiTeacherGet$Plain","apiTeacherGetLevelsByTeacherIdGet","apiTeacherGetLevelsByTeacherIdGet$Plain","apiTeacherGetLevelYearsByTeacherIdGet","apiTeacherGetLevelYearsByTeacherIdGet$Plain","apiTeacherGetSubjectsByTeacherIdGet","apiTeacherGetSubjectsByTeacherIdGet$Plain","apiTeacherGetTeacherRequsetByIdGet","apiTeacherGetTeacherRequsetByIdGet$Plain","apiTeacherGetTeacherRequsetsGet","apiTeacherGetTeacherRequsetsGet$Plain","apiTeacherIdDelete","apiTeacherIdGet","apiTeacherIdGet$Plain","apiTeacherIdPut","apiTeacherPost","TeacherService","apiTeacherIdGet$Plain$Response","apiTeacherIdGet$Response","apiTeacherIdPut$Response","apiTeacherIdDelete$Response","apiTeacherGetLevelsByTeacherIdGet$Plain$Response","apiTeacherGetLevelsByTeacherIdGet$Response","apiTeacherGetLevelYearsByTeacherIdGet$Plain$Response","apiTeacherGetLevelYearsByTeacherIdGet$Response","apiTeacherGetSubjectsByTeacherIdGet$Plain$Response","apiTeacherGetSubjectsByTeacherIdGet$Response","apiTeacherChangeStatusPut$Response","apiTeacherGet$Plain$Response","apiTeacherGet$Response","apiTeacherPost$Response","apiTeacherGetTeacherRequsetByIdGet$Plain$Response","apiTeacherGetTeacherRequsetByIdGet$Response","apiTeacherGetTeacherRequsetsGet$Plain$Response","apiTeacherGetTeacherRequsetsGet$Response","apiTeacherAddTeacherRequsetsPost$Response","ApiTeacherIdGetPath","ApiTeacherIdPutPath","ApiTeacherIdDeletePath","ApiTeacherGetLevelsByTeacherIdGetPath","ApiTeacherGetLevelYearsByTeacherIdGetPath","ApiTeacherGetSubjectsByTeacherIdGetPath","ApiTeacherChangeStatusPutPath","ApiTeacherGetPath","ApiTeacherPostPath","ApiTeacherGetTeacherRequsetByIdGetPath","ApiTeacherGetTeacherRequsetsGetPath","ApiTeacherAddTeacherRequsetsPostPath","apiToDoListChangeStatusPut","apiToDoListGet","apiToDoListGet$Plain","apiToDoListIdDelete","apiToDoListIdGet","apiToDoListIdGet$Plain","apiToDoListIdPut","apiToDoListPost","ToDoListService","apiToDoListGet$Plain$Response","apiToDoListGet$Response","apiToDoListPost$Response","apiToDoListIdGet$Plain$Response","apiToDoListIdGet$Response","apiToDoListIdPut$Response","apiToDoListIdDelete$Response","apiToDoListChangeStatusPut$Response","ApiToDoListGetPath","ApiToDoListPostPath","ApiToDoListIdGetPath","ApiToDoListIdPutPath","ApiToDoListIdDeletePath","ApiToDoListChangeStatusPutPath","apiVideoCourseChangeIsFreePut","isFree","apiVideoCourseChangeStatusPut","apiVideoCourseGet","chapterId","apiVideoCourseGet$Plain","apiVideoCourseGetStudentVideosByChapterGet","chapterdId","apiVideoCourseGetStudentVideosByChapterGet$Plain","apiVideoCourseIdDelete","apiVideoCourseIdGet","apiVideoCourseIdGet$Plain","apiVideoCourseIdPut","apiVideoCoursePost","VideoCourseService","apiVideoCourseGet$Plain$Response","apiVideoCourseGet$Response","apiVideoCoursePost$Response","apiVideoCourseIdGet$Plain$Response","apiVideoCourseIdGet$Response","apiVideoCourseIdPut$Response","apiVideoCourseIdDelete$Response","apiVideoCourseGetStudentVideosByChapterGet$Plain$Response","apiVideoCourseGetStudentVideosByChapterGet$Response","apiVideoCourseChangeStatusPut$Response","apiVideoCourseChangeIsFreePut$Response","ApiVideoCourseGetPath","ApiVideoCoursePostPath","ApiVideoCourseIdGetPath","ApiVideoCourseIdPutPath","ApiVideoCourseIdDeletePath","ApiVideoCourseGetStudentVideosByChapterGetPath","ApiVideoCourseChangeStatusPutPath","ApiVideoCourseChangeIsFreePutPath","AuthenticationService","_token","token","parse","localStorage","getItem","sessionStorage","_tokenInLocal","setItem","_tokenInSession","router","userService","currentUserSubject","BehaviorSubject","userData","currentUser","asObservable","identity","force","distinctUntilChanged","getValue","navigate","of","currentUserValue","login","username","password","rememberMe","userNameOrPhone","user","redirectUser","userRoles","roles","includes","logout","LanguageService","translate","spinnerService","browserLang","languages","currentLang","addLangs","e","getBrowserLang","setLanguage","lang","match","use","documentElement","dir","moment","DOCUMENT","SpinnerService","show","showSpinner","setTimeout","hideSpinner","Page404Component","auth","redirect","selectors","decls","vars","consts","template","rf","ctx","_r2","ctx_r1","_c0","ctx_r0","acc","fullName","userName","AccountDropdownComponent","authService","inputs","standalone","features","AccountDropdownComponent_div_0_Template","CommonModule","i3","RouterModule","NgbDropdownModule","i4","SpinnerComponent","spinner","SpinnerComponent_div_0_Template","environment","production","api","invalidTimingValue","exp","ɵRuntimeError","ngDevMode","optimizeGroupPlayer","players","length","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","get","isSameOffset","normalizedKeyframe","prop","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","animationFailed","listenOnPlayer","player","eventName","event","callback","onStart","copyAnimationEvent","onDone","onDestroy","phaseName","makeAnimationEvent","element","triggerName","fromState","toState","totalTime","disabled","_data","getOrSetDefaultValue","defaultValue","parseTimelineCommand","command","separatorPos","indexOf","substring","slice","getParentElement","parent","parentNode","host","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","selector","multi","from","querySelectorAll","elem","querySelector","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","charAt","matchesElement","_element","_selector","computeStyle","animate","delay","easing","previousPlayers","scrubberAccessRequested","t","ɵprov","AnimationDriver","_class2","NOOP","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","unit","resolveTiming","timings","allowNegativeValues","hasOwnProperty","parseTimeExpression","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","splice","copyObj","obj","destination","convertToMap","styleMap","copyStyles","backfill","setStyles","formerStyles","camelProp","dashCaseToCamelCase","has","eraseStyles","_","normalizeAnimationEntry","steps","isArray","sequence","PARAM_REGEX","RegExp","extractStyleParams","lastIndex","interpolateParams","original","toString","str","varName","localVal","invalidParamValue","iteratorToArray","iterator","item","done","DASH_CASE_REGEXP","input","m","visitDslNode","visitor","node","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","nodeType","window","getComputedStyle","ANY_STATE","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","expr","makeLambdaFromStates","TRUE_BOOLEAN_VALUES","Set","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","definitions","def","stateDef","n","transition","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","sub","add","invalidState","metadataName","animation","matchers","normalizeAnimationOptions","s","furthestTime","step","innerAst","timingAst","constructTimingAst","makeTimingAst","strValue","some","ast","dynamic","currentAnimateTimings","styleMetadata","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","delete","endTime","startTime","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","animateDuration","i","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","find","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","clear","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","abs","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","target","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","time","results","elements","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","pow","round","AnimationStyleNormalizer","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","trim","valAndSuffixMatch","invalidCssUnitValue","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","fn","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","queriedElementsList","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","f","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","register","registerFailed","_buildPlayer","create","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","destroy","_getPlayer","missingPlayer","listen","baseEvent","args","play","pause","reset","restart","finish","init","setPosition","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","triggersWithStates","statesByElement","afterFlush","_getTrigger","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","a","b","k1","k2","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","removeClass","deregister","entry","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","state","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","listener","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","sort","d0","d1","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","unshift","registerTrigger","_fetchNamespace","stateValue","isElementNode","insertBefore","details","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","classList","contains","flush","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","callbacks","triggerCallback","_queueEvent","hasStarted","getPosition","cloakElement","oldValue","display","valuesMap","elementPropsMap","cloakVals","failedElements","props","roots","rootMap","nodeSet","localRootMap","getRoot","remove","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","process","property","action","eventPhase","cb","SpecialCasedStyles","_startStyles","_endStyles","_state","initialStyles","initialStylesByElement","_initialStyles","start","_class3","WeakMap","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_started","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","addEventListener","_resetDomPlayerState","_convertKeyframesToObject","kfs","frame","fromEntries","cancel","methods","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","fill","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","BrowserAnimationBuilder","AnimationBuilder","rootRenderer","doc","_nextAnimationId","_renderer","createRenderer","encapsulation","ViewEncapsulation","None","issueAnimationCommand","BrowserAnimationFactory","AnimationFactory","_id","RendererAnimationPlayer","_command","_listen","renderer","setProperty","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","delegate","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","onRendererDestroy","animationTriggers","AnimationRenderer","begin","_scheduleCountTask","queueMicrotask","scheduleListenerCallback","count","run","end","runOutsideAngular","_onDestroy","destroyNode","namespace","createComment","createText","newChild","refChild","isMove","oldChild","isHostElement","selectRootElement","selectorOrNode","preserveContent","nextSibling","setAttribute","el","removeAttribute","setStyle","flags","removeStyle","setValue","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","SHARED_ANIMATION_PROVIDERS","provide","useClass","ɵAnimationStyleNormalizer","useFactory","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","appRef","ngOnDestroy","RendererFactory2","instantiateRendererFactory","zone","deps","ɵDomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","_class4","withConfig","ngModule","providers","ɵmod","ɵinj","imports","BrowserModule","u","ar_EG","AED","ARS","AUD","BBD","BHD","BMD","BND","BSD","BYN","BZD","CAD","CLP","CNY","COP","CUP","DOP","DZD","EGP","FJD","GBP","GYD","HKD","IQD","IRR","JMD","JOD","JPY","KWD","KYD","LBP","LRD","LYD","MAD","MRU","MXN","NZD","OMR","PHP","QAR","SAR","SBD","SDD","SDG","SRD","SYP","THB","TND","TTD","TWD","USD","UYU","YER","plural","TranslateHttpLoader","suffix","_defineProperty","getTranslation","formatDistanceLocale","lessThanXSeconds","one","two","threeToTen","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","_lib_formatLong","date","buildFormatLongFn","formats","full","long","medium","short","defaultWidth","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_lib_localize","ordinalNumber","num","era","buildLocalizeFn","narrow","abbreviated","wide","quarter","argumentCallback","month","day","dayPeriod","am","pm","morning","noon","afternoon","evening","night","midnight","formattingValues","defaultFormattingWidth","formatDistance","usageGroup","addSuffix","comparison","formatLong","formatRelative","localize","buildMatchPatternFn","matchPattern","parsePattern","valueCallback","parseInt","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","any","defaultParseWidth","weekStartsOn","firstWeekContainsDate","_r5","ctx_r4","routes","component","PublicLayoutComponent","onScroll","scrolled","innerWidth","scrollY","route","transparentNav","setNav","re","NavigationEnd","child","firstChild","snapshot","hostBindings","$event","PublicLayoutComponent_div_11_Template","PublicLayoutComponent_button_12_Template","PublicLayoutComponent_button_13_Template","PublicLayoutComponent_a_16_Template","_c1","loadChildren","all","__webpack_require__","then","bind","ExtrapagesModule","PagesModule","AccountModule","loadComponent","AppRoutingModule","forRoot","scrollPositionRestoration","onSameUrlNavigation","AppComponent","activatedRoute","titleService","langService","ngSelectConfigs","clearAllText","loadingText","notFoundText","placeholder","typeToSearchText","ngOnInit","setTitle","getTitle","ttl","setItNow","ErrorInterceptor","authenticationService","intercept","handle","catchError","err","throwError","isLockout","errorCode","field","JwtInterceptor","setHeaders","Authorization","removeItem","toLowerCase","endsWith","modifiedReq","flagvalue","valueset","item_r4","_r6","$implicit","ctx_r5","flag","ctx_r3","cookieValue","LangChangerComponent","languageService","listLang","x","countryName","LangChangerComponent_img_2_Template","LangChangerComponent_img_6_Template","LangChangerComponent_span_7_Template","LangChangerComponent_a_9_Template","i5","i6","TranslateModule","SystemSwitcherComponent","LayoutsModule","ClickOutsideModule","NgbCollapseModule","NgbTooltipModule","SimplebarAngularModule","BEApiModule","parentModule","registerLocaleData","ngZorroConfig","message","nzTop","notification","form","nzNoColon","createTranslateLoader","playerFactory","AppModule","bootstrap","provideLottieOptions","provideNzConfig","NZ_I18N","localId","en_US","LOCALE_ID","NZ_DATE_LOCALE","dateLocale","DEFAULT_CURRENCY_CODE","DATE_PIPE_DEFAULT_OPTIONS","dateFormat","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","HTTP_INTERCEPTORS","HttpClientModule","loader","TranslateLoader","HttpClient","CarouselModule","LottieModule","NgbAccordionModule","NgbNavModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","console","rgbToRgb","g","bound01","rgbToHsl","h","l","d","hue2rgb","q","hslToRgb","rgbToHsv","hsvToRgb","mod","rgbToHex","allow3Char","hex","pad2","startsWith","rgbaToHex","allow4Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","numberInputToObject","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gold","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","inputToRGB","rgb","ok","format","stringInputToObject","named","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","isValidCSSUnit","substr","convertToPercentage","prototype","call","boundAlpha","CSS_UNIT","concat","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","isOnePointZero","isPercent","isPercentage","clamp01","isNaN","Number","c","canUseDOM","module","exports","defaultOptions","getDefaultOptions","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","getTime","requiredArgs","required","TypeError","toInteger","dirtyNumber","NaN","ceil","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","isValid","dirtyDate","arguments","isDate","_typeof","toDate","width","dirtyIndex","valuesArray","_defaultWidth","_width","string","matchResult","matchedString","findIndex","predicate","pattern","test","findKey","object","rest","parseResult","startOfWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","locale","RangeError","getDay","diff","setDate","setHours","argument","argStr","warn","stack","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","sourcePrototype","len","attr","getDescriptor","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","createTypedArrayFactory","Int16Array","createSizedArray","apply","_typeof$6","Symbol","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","position","top","left","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","addBrightnessToRGB","addHueToRGB","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","createWorker","Worker","dataFunctionManager","completeLayers","layers","comps","layerData","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","comp","findComp","__used","ks","it","o","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","updateTextLayer","textLayer","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","completeData","__complete","completeChars","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","response","responseText","load","loadAsset","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","open","send","payload","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","height","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","BaseEvent","triggerEvent","_cbs","removeEventListener","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","fileName","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","setLoop","isLooping","getPath","getAssetData","hide","getDuration","updateDocumentData","documentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","getBezierEasing","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","newtonRaphsonIterate","aGuessT","currentSlope","binarySubdivide","aA","aB","currentX","currentT","pooling","double","_double","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","iterationIndex","keyframesMetadata","fnc","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","y","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","keyPropS","keyPropE","isHold","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","getShapeProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","_cos","_sin","_tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","j2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","e1","f1","g1","h1","j1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","queryString","pair","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","releasePathsData","processShapes","_s","shapePaths","totalShapeLength","edges","shapeS","shapeE","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styleName","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","w","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","trimFontOptions","familyArray","enabledFamilies","createHelper","helper","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","measure","getComputedTextLength","getCodePoint","codePoint","charCodeAt","second","isRegionalCode","Font","typekitLoaded","_warned","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","sc","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","source","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","animators","based","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","usesGlyphs","tSpan","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","timeRemapped","setElements","getElements","destroyElements","addTransformSequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","createLumaSvgFilter","_svg","getLuma","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","currentTransform","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","setup","perspectiveStyle","perspective","perspectiveElem","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","defineProperty","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","global","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","seedrandom","shortseed","entropy","autoseed","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","fetch","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","randSeed","posterizeTime","framesPerSecond","velocity","textIndex","textTotal","selectorValue","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","_name","_registerMaskInterface","_registerEffectsInterface","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","_propertyGroup","createGroupInterface","groupInterface","mn","createValueInterface","numProperties","np","enabled","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","contentsInterfaceFactory","interfaces","transformInterfaceFactory","cix","startPoint","endPoint","_dashPropertyGroup","dashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","parentGroupWrapper","_sourceText","sourceText","stringValue","fillColor","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","getShapeValueAtTime","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","units","color1","color2","color3","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","forceFrame","scaleHeight","scaleWidth","defineLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","isLower","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","lastDay","sameElse","relativeTime","future","past","ss","hh","dd","M","MM","yy","dayOfMonthOrdinalParse","ordinal","week","dow","doy","require","pluralForm","plurals","pluralize","withoutSuffix","isFuture","weekdaysParseExact","hour","minute","postformat","symbolMap","preparse","numberMap","suffixes","relativeTimeWithPlural","word","forms","isFormat","period","ww","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutation","softMutation","mutationTable","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","specialMutationForYears","ll","lll","llll","output","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","isFunction","Function","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","abbr","until","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$1","$2","isUpper","eifelerRegelAppliesToNumber","processFutureTime","processPastTime","translateSingular","special","translateSeconds","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","days","numbersNouns","numberNoun","numberAsNoun","hundred","ten","translateFuture","translatePast","hm","processHoursFunction","weekdaysCaseReplace","nominative","accusative","genitive","hookCallback","hooks","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isNumber","extend","valueOf","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","_isValid","parsedParts","isNowValid","_d","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","func","localeData","removeFormattingTokens","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","setFullYear","createUTCDate","getUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kFormat","seconds","kInput","_isPm","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","preprocessRFC2822","extractFromRFC2822Strings","monthStr","dayStr","hourStr","minuteStr","secondStr","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","setUTCMinutes","getUTCMinutes","configFromArray","currentDate","expectedWeekday","yearToUse","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","dayOfYearFromWeekInfo","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","_dayOfYear","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","erasConvertYear","prepareConfig","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromInput","configFromString","createFromInputFallback","configFromObject","millisecond","isUTC","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","weeks","isoWeek","milliseconds","isDurationValid","unitHasDecimal","orderLen","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","momentsDifference","base","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","tmp","addSubtract","isAdding","invalid","createInvalid$1","subtract","isString","isMomentInput","isNumberOrStringArray","arrayTest","dataTypeTest","isMomentInputObject","objectTest","propertyTest","propertyLen","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","matchEraName","erasNameRegex","matchEraNarrow","erasNarrowRegex","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","calendar$1","isCalendarSpec","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","humanize","fromNow","toNow","stringGet","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","isValid$2","parsingFlags","stringSet","prioritized","getPrioritizedUnits","unitsObj","prioritizedLen","toArray","toObject","keepOffset","inspect","isLocal","for","toJSON","unix","creationData","eraName","getEraName","eraNarrow","getEraNarrow","eraAbbr","getEraAbbr","eraYear","getEraYear","getIsLeapYear","getSetWeekYear","getSetISOWeekYear","getSetQuarter","getDaysInMonth","getSetWeek","isoWeeks","getSetISOWeek","getWeeksInYear","weekInfo","weeksInWeekYear","getWeeksInWeekYear","isoWeeksInYear","getISOWeeksInYear","isoWeeksInISOWeekYear","getISOWeeksInISOWeekYear","getSetDayOfWeek","parseWeekday","getSetLocaleDayOfWeek","getSetISODayOfWeek","parseIsoWeekday","getSetDayOfYear","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","setOffsetToUTC","setOffsetToLocal","parseZone","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDST","isDaylightSavingTime","isUtcOffset","zoneAbbr","getZoneAbbr","zoneName","getZoneName","dates","getSetZone","isDSTShifted","isDaylightSavingTimeShifted","_isDSTShifted","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","localeEras","_eras","localeErasParse","localeErasConvertYear","localeMonths","localeMonthsShort","_monthsShort","localeMonthsParse","_monthsParseExact","localeWeek","firstDayOfYear","localeFirstDayOfYear","firstDayOfWeek","localeFirstDayOfWeek","localeWeekdays","_weekdays","localeWeekdaysMin","_weekdaysMin","localeWeekdaysShort","_weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","localeIsPM","localeMeridiem","langData","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","isValid$1","add$1","subtract$1","valueOf$1","bubble","monthsFromDays","clone$1","get$2","argWithSuffix","argThresholds","withSuffix","th","relativeTime$1","posNegDuration","toIsoString","setHookCallback","createUnix","listMonths","listWeekdays","createInZone","listMonthsShort","listWeekdaysMin","updateLocale","tmpLocale","listLocales","listWeekdaysShort","relativeTimeRounding","getSetRelativeTimeRounding","roundingFunction","relativeTimeThreshold","getSetRelativeTimeThreshold","getCalendarFormat","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","ClickOutsideDirective","_el","_ngZone","platformId","clickOutsideEnabled","attachOutsideOnClick","delayClickOutsideInit","emitOnBlur","exclude","excludeBeforeClick","clickOutsideEvents","clickOutside","EventEmitter","_nodesExcluded","_events","_initOnClickBody","_onClickBody","_onWindowBlur","isPlatformBrowser","_init","_removeClickOutsideListener","_removeAttachOutsideOnClickListener","_removeWindowBlurListener","ngOnChanges","changes","_excludeCheck","_initAttachOutsideOnClickListener","_initWindowBlurListener","_initClickOutsideListener","nativeElement","_shouldExclude","_emit","_this","emit","PLATFORM_ID","ɵdir","outputs","Subject","_subscribe","subscriber","subscription","hasError","thrownError","_throwIfClosed","Observable","lift","operator","observable","observerOrNext","complete","isSubscriber","Subscriber","isObserver","isSubscription","SafeSubscriber","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","unsubscribe","Symbol_observable","operations","pipeFromArray","toPromise","ReplaySubject","_bufferSize","Infinity","_windowTime","_timestampProvider","dateTimestampProvider","_buffer","_infiniteTimeWindow","isStopped","_trimBuffer","_innerSubscribe","_checkFinalizedStatuses","adjustedBufferSize","last","ObjectUnsubscribedError","createErrorClass","_super","currentObservers","observers","subject","AnonymousSubject","observer","observed","EMPTY_SUBSCRIPTION","Subscription","arrRemove","_b","COMPLETE_NOTIFICATION","createNotification","kind","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_next","errorNotification","_error","_complete","_bind","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","captureError","reportUnhandledError","onStoppedNotification","timeoutProvider","noop","defaultErrorHandler","UnsubscriptionError","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","teardown","_hasParent","_addParent","_removeParent","EMPTY","onUnhandledError","ConnectableObservable","subjectFactory","_subject","_refCount","_connection","hasLift","getSubject","_teardown","connect","connection","createOperatorSubscriber","refCount","higherOrderRefCount","combineLatest","scheduler","popScheduler","resultSelector","popResultSelector","observables","argsArgArrayOrObject","combineLatestInit","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","createObject","mapOneOrManyArgs","execute","executeSchedule","concatAll","mergeAll","defer","observableFactory","innerFrom","forkJoin","remainingCompletions","remainingEmissions","sourceIndex","hasValue","subscribeOn","operate","schedule","scheduleAsyncIterable","asyncIterator","scheduled","isInteropObservable","scheduleObservable","observeOn","isArrayLike","scheduleArray","isPromise","schedulePromise","isAsyncIterable","isIterable","scheduleIterable","Symbol_iterator","return","isReadableStreamLike","scheduleReadableStreamLike","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","isEventTarget","methodName","handler","isNodeStyleEventEmitter","addListener","removeListener","toCommonHandlerRegistry","isJQueryStyleEventEmitter","on","off","mergeMap","subTarget","fromInteropObservable","obs","fromArrayLike","fromPromise","promise","fromAsyncIterable","fromIterable","iterable","fromReadableStreamLike","readableStream","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","__awaiter","__asyncValues","e_1_1","merge","concurrent","popNumber","errorOrErrorFactory","errorFactory","timer","dueTime","intervalOrScheduler","asyncScheduler","intervalDuration","isScheduler","due","isValidDate","zip","argsOrArgArray","every","onNext","onFinalize","OperatorSubscriber","shouldUnsubscribe","auditTime","audit","durationSelector","durationSubscriber","isComplete","endDuration","cleanupDuration","handledResult","innerSub","syncUnsub","concatMap","project","debounceTime","activeTask","emitWhenIdle","targetTime","defaultIfEmpty","delayWhen","delayDurationSelector","subscriptionDelay","take","ignoreElements","mapTo","comparator","keySelector","defaultCompare","previousKey","currentKey","finalize","hasDefaultValue","throwIfEmpty","EmptyError","mergeInternals","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","refCounter","sharedConnection","conn","scanInternals","accumulator","hasSeed","emitOnNext","emitBeforeComplete","hasState","share","connector","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","resetConnection","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","dest","handleReset","onSubscriber","shareReplay","configOrBufferSize","windowTime","bufferSize","skip","startWith","switchMap","innerSubscriber","innerIndex","outerIndex","seen","takeUntil","notifier","tap","tapObserver","isUnsub","defaultErrorFactory","withLatestFrom","otherValues","ready","Action","work","intervalProvider","timeout","AsyncAction","pending","recycleAsyncId","requestAsyncId","_scheduler","_execute","errorValue","errored","actions","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","_active","animationFrameProvider","cancelAnimationFrame","timestamp","animationFrameScheduler","AnimationFrameScheduler","flushId","_scheduled","AnimationFrameAction","resolved","nextHandle","activeHandles","findAndClearHandle","Immediate","setImmediate","clearImmediate","immediateProvider","asapScheduler","AsapScheduler","AsapAction","async","clearTimeout","getSymbolIterator","getPrototypeOf","objectProto","getKeys","isPOJO","createImpl","ctorFunc","instance","reduce","isRoot","errorThrown","parentSubscription","repeat","scheduleSubscription","isObservable","__asyncGenerator","reader","getReader","__await","read","releaseLock","liftedSource","callOrApply","fns","prev","lodash_es_isObject","freeGlobal","freeSelf","self","_root","lodash_es_now","reWhitespace","reTrimStart","_baseTrim","baseTrim","trimmedEndIndex","nativeObjectToString","symToStringTag","toStringTag","_baseGetTag","baseGetTag","getRawTag","isOwn","tag","unmasked","objectToString","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","lodash_es_toNumber","toNumber","isSymbol","isObjectLike","isBinary","nativeMax","nativeMin","lodash_es_debounce","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","timeWaiting","debounced","isInvoking","leadingEdge","__assign","cachedScrollbarWidth","cachedDevicePixelRatio","scrollbarWidth","getBoundingClientRect","getElementWindow$1","ownerDocument","defaultView","getElementDocument$1","getOptions$1","attribute","option","chr","addClasses$1","classes","removeClasses$1","classNamesToQuery$1","classNames","helpers","__proto__","getElementWindow","getElementDocument","getOptions","addClasses","removeClasses","classNamesToQuery","SimpleBarCore","removePreventClickId","minScrollbarWidth","stopScrollDelay","isScrolling","isMouseEntering","scrollXTicking","scrollYTicking","wrapperEl","contentWrapperEl","contentEl","offsetEl","maskEl","placeholderEl","heightAutoObserverWrapperEl","heightAutoObserverEl","rtlHelpers","resizeObserver","mutationObserver","elStyles","isRtl","mouseX","mouseY","onMouseMove","onWindowResize","onStopScrolling","onMouseEntered","elWindow","scrollX","scrolling","showScrollbar","axis","isOverflowing","positionScrollbar","_onStopScrolling","autoHide","hideScrollbar","onMouseEnter","mouseEntered","_onMouseEntered","_onMouseMove","clientX","clientY","forceVisible","onMouseMoveForAxis","onMouseLeave","onMouseLeaveForAxis","_onWindowResize","getScrollbarWidth","hideNativeScrollbar","onPointerEvent","isWithinTrackXBounds","isWithinTrackYBounds","track","scrollbar","isWithinBounds","stopPropagation","pointerType","onDragStart","onTrackClick","drag","_c","_e","_g","_h","_j","_k","draggedAxis","trackSize","sizeAttr","contentSize","scrollSizeAttr","hostSize","preventDefault","dragPos","pageY","pageX","offsetAttr","dragOffset","scrollPos","getRtlHelpers","isScrollingToNegative","scrollOffsetAttr","onEndDrag","elDocument","dragging","preventClick","offsetSizeAttr","overflowAttr","nodeName","throttle","dummyDiv","innerHTML","scrollbarDummyEl","firstElementChild","dummyChild","scrollLeft","dummyContainerOffset","getOffset","dummyChildOffset","dummyChildOffsetAfterScroll","isScrollOriginAtZero","pageYOffset","scrollTop","pageXOffset","initDOM","initListeners","scrollableNode","contentWrapper","contentNode","findChild","horizontal","vertical","visible","ResizeObserver","resizeObserverStarted_1","observe","MutationObserver","childList","subtree","characterData","contentElOffsetWidth","isHeightAuto","isWidthAuto","contentWrapperElOffsetWidth","elOverflowX","overflowX","elOverflowY","overflowY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","contentElScrollHeight","scrollHeight","contentElScrollWidth","scrollWidth","contentWrapperElOffsetHeight","offsetForXScrollbar","getScrollbarSize","toggleTrackVisibility","scrollbarSize","scrollbarMinSize","scrollbarMaxSize","scrollOffset","handleOffset","visibility","scrollable","currentAxis","hover","clickOnTrack","scrollbarOffset","scrollSize","scrollTo","getContentElement","getScrollElement","removeListeners","disconnect","unMount","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","SimplebarAngularComponent","elRef","SimpleBar","ngAfterViewInit","ɵcmp","hostAttrs","ngContentSelectors","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_isNativeReflectConstruct","Reflect","construct","Boolean","_toPropertyKey","_toPrimitive","toPrimitive","_classCallCheck","Constructor","_defineProperties","descriptor","enumerable","configurable","writable","_createClass","protoProps","staticProps","setPrototypeOf","_setPrototypeOf","_get","receiver","_superPropBase","desc","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_arrayLikeToArray","_iterableToArray","iter","_nonIterableSpread","minLen","_classPrivateFieldGet","privateMap","_classApplyDescriptorGet","_classExtractFieldDescriptor","_classPrivateFieldSet","_classApplyDescriptorSet","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","privateCollection","globalState","restoreActiveElement","returnFocus","restoreFocusTimeout","previousActiveElement","HTMLElement","focus","swalClasses","iconTypes","consolePrefix","capitalizeFirstLetter","previousWarnOnceMessages","warnAboutDeprecation","deprecatedParam","useInstead","warnOnce","callIfFunction","hasToPromiseFn","asPromise","getContainer","elementBySelector","selectorString","elementByClass","getPopup","popup","getIcon","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","confirm","getCancelButton","getDenyButton","deny","getLoader","getActions","getFooter","footer","getTimerProgressBar","getCloseButton","close","getFocusableElements","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","getAttribute","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","hasClass","shown","isToast","toast","setInnerHtml","html","parsed","DOMParser","parseFromString","head","HTMLVideoElement","HTMLAudioElement","cloneNode","applyCustomClass","showClass","removeCustomClasses","customClass","getInput$1","inputClass","checkbox","radio","range","focusInput","toggleClass","condition","getDirectChildByClass","applyNumericalStyle","removeProperty","showWhenInnerHtmlPresent","toggle","getClientRects","isScrollable","clientHeight","hasCssAnimation","animDuration","getPropertyValue","transDuration","animateTimerProgressBar","timerProgressBar","isNodeEnv","sweetHTML","file","select","label","textarea","resetValidationMessage$1","currentInstance","resetValidationMessage","oldContainerExisted","oldContainer","resetOldContainer","targetElement","getTarget","setupAccessibility","setupRTL","rangeOutput","oninput","onchange","addInputChangeListeners","parseHtmlToContainer","param","handleObject","jquery","handleJqueryElem","animationEndEvent","testEl","webkitAnimation","renderActions","showConfirmButton","showDenyButton","renderButtons","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","buttonsStyling","styled","denyButtonColor","cancelButtonColor","reverseButtons","loaderHtml","button","buttonType","buttonName","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","grow","privateProps","innerParams","domCache","inputClasses","showInput","renderInputType","inputContainer","getInputContainer","inputAutoFocus","setAttributes","inputAttributes","attrName","removeAttributes","setCustomClass","setInputPlaceholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","labelClass","insertAdjacentElement","inputType","checkAndSetInputValue","inputValue","email","tel","search","rangeInput","selected","checkboxContainer","checked","initialPopupWidth","textareaWidth","marginLeft","marginRight","attributeFilter","renderContent","htmlContainer","rerender","renderInput","applyStyles","_Object$entries","_Object$entries$_i","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","setContent","oldContent","newContent","iconContent","question","warning","info","iconColor","borderColor","_i2","_arr","modal","createStepElement","stepEl","createLineElement","lineEl","progressStepsDistance","renderPopup","progressStepsContainer","progressSteps","currentProgressStep","renderProgressSteps","renderIcon","imageUrl","imageAlt","imageWidth","imageHeight","renderImage","renderTitle","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderCloseButton","renderFooter","didRender","clickConfirm","_dom$getConfirmButton","DismissReason","esc","removeKeydownHandler","keydownTarget","keydownHandlerAdded","keydownHandler","capture","keydownListenerCapture","setFocus","increment","_dom$getPopup","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","dismissWith","isComposing","keyCode","stopKeydownPropagation","handleEnter","handleTab","handleArrows","handleEsc","allowEnterKey","outerHTML","btnIndex","shiftKey","activeElement","sibling","buttonToFocus","HTMLButtonElement","allowEscapeKey","privateMethods","swalPromiseResolve","swalPromiseReject","unsetAriaHidden","hasAttribute","isSafariOrIOS","GestureEvent","lockBodyScroll","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","isStylus","isZoom","tagName","touches","touchType","previousBodyPadding","replaceScrollbarWithPadding","initialBodyOverflow","innerHeight","scrollDiv","clientWidth","measureScrollbar","removePopupAndResetState","didClose","triggerDidCloseAndDispose","iosfix","undoIOSfix","removeBodyClasses","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","hideClass","handlePopupAnimation","rejectPromise","_destroy","isDenied","animationIsSupported","willClose","animatePopup","swalCloseEventFinishedCallback","showLoading","buttonToReplace","replaceButton","loading","getCheckboxValue","getRadioValue","getFileValue","files","handleInputOptions","processInputOptions","inputOptions","populateSelectOptions","renderOption","optionLabel","optionValue","isSelected","inputOption","optgroup","formatInputOptions","populateRadioOptions","radioValue","radioLabel","radioInput","radioLabelElement","radios","hideLoading","handleInputValue","getInput","valueFormatted","handleConfirmOrDenyWithInput","inputAutoTrim","getInputValue","inputValidator","handleInputValidator","checkValidity","enableButtons","showValidationMessage","validationMessage","disableInput","enableInput","showLoaderOnDeny","preDeny","preDenyValue","rejectWith","succeedWith","preConfirmValue","showRelatedButton","setButtonsDisabled","buttons","setInputDisabled","disableButtons","inputerror","heightAuto","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","returnInputValueOnDeny","willOpen","didOpen","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","validUpdatableParams","filterValidParams","updatedParams","disposeSwal","disposeWeakMaps","unsetWeakMaps","disableLoading","closePopup","closeModal","closeToast","instanceMethods","handleToastClick","onclick","isAnyButtonShown","ignoreOutsideClick","handleModalMousedown","onmousedown","onmouseup","handleContainerMousedown","handleModalClick","isElement","Element","isJqueryElement","stopTimer","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","resumeTimer","remaining","bodyClickListenerAdded","clickHandlers","bodyClickListener","fire","staticMethods","argsToParams","bindClickHandler","clickCancel","_dom$getCancelButton","clickDeny","_dom$getDenyButton","enableLoading","_len","_key","_construct","getIconContent","getInputLabel","getTimerLeft","increaseTimer","increase","isLoading","isTimerRunning","isRunning","mixin","mixinParams","MixinSwal","_inherits","subClass","superClass","priorityMixinParams","toggleTimer","running","Timer","started","swalStringParams","getSwalParams","templateContent","swalParams","showWarningsForAttributes","getSwalFunctionParams","swalFunctions","getSwalButtons","swalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","paramNames","showWarningsForElements","allowedElements","allowedAttributes","openPopup","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","iOSfix","defaultInputValidators","setParameters","setDefaultInputValidators","validateCustomTargetElement","_promise","SweetAlert","outerParams","_main","showWarningsForParams","prepareParams","populateDomCache","swalPromise","onFulfilled","onFinally","finally","dismiss","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handlePopupClick","addKeydownHandler","handleInputOptionsAndValue","setupTimer","initFocus","templateParams","getTemplateParams","blurActiveElement","focusButton","blur","language","initiationDate","pointerEvents","ukrainianAnthem","_currentInstance","Sweetalert2","swal","sweetAlert","styleSheet","cssText","webpackContext","req","webpackContextResolve","stateChangeExpr","stagger","_position","_onStart","triggerMicrotask","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","timeAtPosition","longestPlayer","longestSoFar","coerceBooleanProperty","coerceNumberProperty","fallbackValue","_isNumberValue","coerceArray","coerceCssPixelValue","coerceElement","elementOrRef","ElementRef","_DOM","getDOM","setRootDomAdapter","adapter","DomAdapter","InjectionToken","PlatformLocation","historyGo","relativePosition","inject","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_location","_history","history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","protocol","hostname","port","hash","pushState","replaceState","forward","back","go","getState","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","internal","includeHash","queryParams","externalUrl","HashLocationStrategy","_class5","Location","_class6","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","isCurrentPathEqualTo","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","ɵɵinject","NumberFormatStyle","Decimal","Percent","Currency","Scientific","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleDayPeriods","formStyle","ɵfindLocaleData","amPm","getLastDefinedValue","ɵLocaleDataIndex","DayPeriodsFormat","DayPeriodsStandalone","getLocaleDayNames","DaysFormat","DaysStandalone","getLocaleMonthNames","MonthsFormat","MonthsStandalone","getLocaleDateFormat","DateFormat","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","NumberSymbols","getLocaleNumberFormat","NumberFormats","checkFullData","ExtraData","LocaleId","extractTime","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Month","Hours","Minutes","Seconds","FractionalSeconds","Day","TranslationType","DayPeriods","Days","Months","Eras","formatDate","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","timeSetter","setUTCHours","getNamedFormat","part","dateTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","setMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","formatter","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","newDate","localeId","getLocaleId","formatValue","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","digits","minusSign","negWrap","neg","strNum","getDatePart","formatFractionalSeconds","localeMinus","extended","getDateTranslation","currentHours","currentMinutes","rules","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","afterFrom","beforeTo","getLocaleEraNames","erasData","JANUARY","THURSDAY","getThursdayThisWeek","datetime","monthBased","nbDaysBefore1stDayOfMonth","thisThurs","firstThurs","getFirstThursdayOfYear","fallback","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","formatNumberToLocaleString","groupSymbol","decimalSymbol","digitsInfo","formattedText","isZero","parsedNumber","parseNumber","integerLen","zeros","numStr","exponent","MAX_DIGITS","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","roundNumber","fractionSize","roundAt","digit","dropTrailingZeros","carry","reduceRight","decimals","groups","lgSize","gSize","negPre","negSuf","posPre","posSuf","parseNumberFormat","patternParts","positive","negative","positiveParts","integer","fraction","trunkLen","extraData","ɵregisterLocaleData","parseCookieValue","cookieStr","cookie","eqIndex","cookieName","WS_REGEXP","EMPTY_ARRAY","NgClass","_class9","_iterableDiffers","_keyValueDiffers","_ngEl","initialClasses","klass","ngClass","rawClass","ngDoCheck","_updateState","_applyStateDiff","nextEnabled","touched","stateEntry","_toggleClass","NgForOfContext","ngForOf","even","odd","NgForOf","_class11","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","viewContainer","forEachOperation","adjustedPreviousIndex","previousIndex","createEmbeddedView","applyViewChange","ilen","forEachIdentityChange","record","ngTemplateContextGuard","NgIf","_class12","templateRef","_context","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_viewContainerRef","_templateRef","_created","enforceState","created","NgSwitch","_class13","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","useDefault","NgSwitchCase","_class14","_view","ngSwitchCase","NgSwitchDefault","_class15","NgStyle","_class18","_ngStyle","ngStyle","_setStyle","nameAndUnit","RendererStyleFlags2","DashCase","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_class19","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","viewContainerRef","injector","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","untracked","dispose","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_class20","ref","_latestValue","_subscription","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","markForCheck","ɵpipe","pure","DATE_PIPE_DEFAULT_TIMEZONE","DatePipe","_class24","defaultTimezone","DecimalPipe","_class29","isValue","formatNumber","strToNumber","PercentPipe","_class30","formatPercent","_class33","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","isPlatformServer","ViewportScroller","_class34","ɵɵdefineInjectable","BrowserViewportScroller","setOffset","getScrollPosition","supportsScrolling","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","getElementsByName","createTreeWalker","attachShadow","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","shadowRoot","nextNode","scrollToElement","setHistoryScrollRestoration","scrollRestoration","XhrFactory","noopImageLoader","IMAGE_LOADER","PRELOADED_IMAGES","PreloadLinkCreator","_class37","preloadedImages","createPreloadLinkTag","srcset","sizes","preload","VALID_WIDTH_DESCRIPTOR_SRCSET","DENSITY_SRCSET_MULTIPLIERS","defaultConfig","breakpoints","IMAGE_CONFIG","NgOptimizedImage","_class38","processConfig","sortedBreakpoints","Renderer2","imgElement","Injector","isServer","preloadLinkCreator","lcpObserver","_renderedSrc","disableOptimizedSrcset","setHostAttributes","setHostAttribute","getLoadingBehavior","getFetchPriority","rewrittenSrcset","updateSrcAndSrcset","getRewrittenSrc","ngSrc","isFirstChange","oldSrc","newSrc","updateImage","callImageLoader","configWithoutCustomParams","augmentedConfig","loaderParams","getRewrittenSrcset","widthSrcSet","ngSrcset","srcStr","getAutomaticSrcset","getResponsiveSrcset","getFixedSrcset","filteredBreakpoints","bp","forceSrcRecalc","rewrittenSrc","shouldGenerateAutomaticSrcset","multiplier","hostVars","unwrapSafeUrl","numberAttribute","booleanAttribute","ɵunwrapSafeValue","HttpHandler","HttpBackend","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","Headers","setHeaderEntries","getAll","lcName","copyFrom","applyUpdate","toDelete","existing","headerValues","HttpUrlEncodingCodec","standardEncoding","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","updates","cloneFrom","fromString","fromObject","paramParser","rawParams","codec","eqIdx","appendAll","eKey","idx","HttpContext","isArrayBuffer","ArrayBuffer","isBlob","isFormData","third","fourth","withCredentials","mightHaveBody","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","detectContentTypeHeader","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","defaultStatusText","statusText","HttpHeaderResponse","HttpErrorResponse","addBody","events$","res$","jsonp","callbackParam","patch","put","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","downstreamRequest","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","legacyInterceptorFnFactory","chain","pendingTasks","ɵInitialRenderPendingTasks","taskId","HttpInterceptorHandler","backend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","setRequestHeader","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","responseURL","onLoad","originalBody","sentHeaders","onDownProgress","progressEvent","lengthComputable","partialText","onUpProgress","progress","upload","DONE","abort","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","_class7","platform","lastCookieString","lastToken","parseCount","getToken","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","headerName","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","Fetch","makeHttpFeature","ɵkind","ɵproviders","provideHttpClient","useExisting","feature","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","_class10","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","before","after","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","isForwardRef","isEnvironmentProviders","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","renderStringify","throwProviderNotFoundError","injectorName","actual","expected","opts","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","getInjectImplementation","setInjectImplementation","impl","previous","injectRootLimpMode","notFoundValue","injectableDef","_global","globalThis","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","convertToBitFlags","skipSelf","injectArgs","types","meta","getInjectFlag","attachInjectFlag","decorator","noSideEffects","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","ShadowDom","EMPTY_OBJ","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","NG_ENV_ID","__NG_ENV_ID__","classIndexOf","classToSearch","startingIndex","foundIndex","setUpAttributes","native","attrs","namespaceURI","attrVal","isAnimationProp","isNameOnlyAttributeMarker","mergeHostAttrs","dst","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","cssClassToMatch","isProjectionMode","isImplicitAttrsSection","isInlineTemplate","tNode","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","chunk","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","onPush","changeDetection","directiveDefs","pipeDefs","dependencies","getStandaloneInjector","signals","schemas","tView","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hashSelectors","exportAs","contentQueries","viewQuery","char","imul","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","declarations","transitiveCompileScopes","ɵɵsetNgModuleScope","scope","ngModuleDef","getNgModuleDef","invertObject","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","throwNotFound","declaredInputs","providersResolver","inputTransforms","inputConfig","setInput","findHostDirectiveDefs","hostDirectives","definition","defExtractor","dep","HOST","TVIEW","FLAGS","NEXT","DESCENDANT_VIEWS_TO_REFRESH","T_HOST","CLEANUP","CONTEXT","INJECTOR$1","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","ID","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","HYDRATION","REACTIVE_TEMPLATE_CONSUMER","REACTIVE_HOST_BINDING_CONSUMER","HEADER_OFFSET","TYPE","HAS_TRANSPLANTED_VIEWS","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","getFactoryDef","activeConsumer","inNotificationPhase","setActiveConsumer","consumer","REACTIVE_NODE","dirty","producerNode","producerLastReadVersion","producerIndexOfThis","nextProducerIndex","liveConsumerNode","liveConsumerIndexOfThis","consumerAllowSignalWrites","consumerIsAlwaysLive","producerMustRecompute","producerRecomputeValue","consumerMarkedDirty","producerUpdateValueVersion","consumerIsLive","consumerPollProducersForChange","consumerMarkDirty","producerNotifyConsumers","consumerBeforeComputation","consumerAfterComputation","prevConsumer","producerRemoveLiveConsumerAtIndex","assertConsumerNode","producer","seenVersion","consumerDestroy","assertProducerNode","lastIdx","idxProducer","throwInvalidWriteToSignalErrorFn","nonReactiveReadsFn","NOOP_CLEANUP_FN","WATCH_NODE","hasRun","cleanupFn","SimpleChange","firstChange","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","privateName","setSimpleChangesStore","store","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","hookOrListener","SVG_NAMESPACE","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","nodeIndex","hostView","slotValue","getConstant","resetPreOrderHookFlags","markViewForRefresh","updateViewsToRefresh","clearViewRefreshFlag","viewOrContainer","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","isParent","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","currentLFrame","childLFrame","selectedIndex","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","callHookInternal","directive","hook","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","previousInjectImplementation","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","isFactory","throwCyclicDependencyError","depPath","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","PARAMETERS","makeParamDecorator","parentClass","metaCtor","makeMetadataCtor","propName","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","cls","unusedKey","parameters","ngMetadataName","annotationCls","Type","deepForEach","addToArray","removeFromArray","newArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","keyValueArrayGet","_arrayIndexOfSorted","middle","Inject","hasInSkipHydrationBlockFlag","Important","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","getLViewParent","getFirstLContainer","getNearestLContainer","getNextLContainer","applyToElementOrContainer","lNodeToHandle","beforeNode","lContainer","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","applyContainer","parentRElement","applyView","createTextNode","updateTextNode","createCommentNode","escapeCommentText","createElementNode","detachMovedView","declarationContainer","movedViews","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","cleanup","lCleanup","targetIdx","destroyHooksFn","unregisterLView","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","policy$1","policy","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","nativeParent","nativeRemoveChild","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","trustedHTMLFromString","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","setDocument","getDocument","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyElement","inertDocument","implementation","createHTMLDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","tags","sets","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","buf","sanitizeChildren","traverseContent","Node","ELEMENT_NODE","startElement","TEXT_NODE","nodeValue","endElement","checkClobberedElement","elAttrs","elAttr","lower","encodeEntities","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","NONE","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","_desc","ENVIRONMENT_INITIALIZER","INJECTOR","INJECTOR_DEF_TYPES","NullInjector","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","collectProviders","provider","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","parents","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","EnvironmentInjector","R3Injector","scopes","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","service","onDestroyHooks","removeOnDestroy","previousInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializers","initializer","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","paramLength","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","CSP_NONCE","_retrieveHydrationInfoImpl","retrieveHydrationInfo","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver$1","NULL","injectElementRef","createElementRef","unwrapElementRef","injectRenderer2","nodeAtIndex","Sanitizer","Version","major","minor","VERSION","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","assertInInjectionContext","debugFn","getCurrentInjector","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","DestroyRef","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","_wrapInTimeout","EventEmitter_","isAsync","__isAsync","nextFn","errorFn","completeFn","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","Zone","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","isBrowser","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","isAngularZone","onInvokeTask","task","applyThis","applyArgs","shouldBeIgnoredByZone","__ignore_ng_zone__","invokeTask","onEnter","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","change","_hasPendingMicrotasks","microTask","macroTask","onHandleError","handleError","isInAngularZone","assertInAngularZone","assertNotInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","ZONE_IS_STABLE_OBSERVABLE","isStableFactory","_stable","isCurrentlyStable","stableSub","unstableSub","merge$1","ɵɵresolveWindow","ɵɵresolveDocument","maybeUnwrapFn","AfterRenderEventManager","_class8","deferredCallbacks","renderDepth","runningCallbacks","unregister","markViewDirty","getOriginalError","ErrorHandler","_console","originalError","_findOriginalError","PRESERVE_HOST_CONTENT","currentConsumer","getReactiveLViewConsumer","slot","getOrCreateCurrentLViewConsumer","commitLViewConsumerIfHasProducers","createLViewConsumer","REACTIVE_LVIEW_CONSUMER_NODE","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","ɵɵinvalidFactory","createLView","tHostNode","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","initialValue","allocIdx","executeTemplate","templateFn","prevSelectedIndex","isUpdatePhase","effectiveConsumer","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","localRefExtractor","localIndex","incompleteFirstPass","createTView","directives","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","queries","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","components","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","generatePropertyAliases","aliasMap","propertyAliases","hostDirectiveAliasMap","internalName","addPropertyAlias","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","findDirectiveDefMatches","registry","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","setElementAttribute","initialInputData","writeToDirectiveInput","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","loadComponentRenderer","currentDef","unwrapLView","errorHandler","textBindingInternal","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","renderChildComponents","EffectManager","queue","effectFn","destroyRef","allowSignalWrites","watch","registerOnCleanup","notify","unregisterOnDestroy","isQueueEmpty","computeStaticStyling","writeToHost","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","detectChangesInternal","notifyErrorHandler","afterRenderEventManager","refreshView","effectManager","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","detectChangesInView","detectChangesInComponent","viewAttachedToChangeDetector","ViewRef$1","rootNodes","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","detach","reattach","detectChanges","checkNoChanges","attachToViewContainerRef","detachFromAppRef","detachViewFromDOM","attachToAppRef","RootViewRef","ComponentFactoryResolver","ComponentFactory","toRefArray","nonMinified","templateName","ChainedInjector","parentInjector","refArray","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","changeDetectorRef","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","defData","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","ɵɵHostDirectivesFeature","rawHostDirectives","bindingArrayToMap","matchedDefs","hostDirectiveConfig","hostDirectiveDef","patchDeclaredInputs","bindings","exposedInputs","ɵɵInputTransformsFeature","isListLikeIterable","isJsObject","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated4","exp3","exp4","ɵɵattribute","elementAttributeInternal","interpolation1","interpolation2","ɵɵtemplate","attrsIndex","localRefsIndex","adjustedIndex","templateFirstCreatePass","tViewConsts","embeddedTView","comment","_locateOrCreateContainerAnchor","createContainerAnchorImpl","ɵɵreference","getContextLView","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵelementStart","elementStartFirstCreatePass","elementStart","_locateOrCreateElementNode","hasDirectives","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","elementEnd","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","isSubscribable","ɵɵlistener","listenerFn","useCapture","eventTargetResolver","listenerInternal","ɵɵsyntheticHostListener","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","interpolatedValue","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","cursor","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","newIndex","oldKey","newKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","_locateOrCreateTextNode","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate2","ɵɵclassMapInterpolate4","interpolation4","ɵɵhostProperty","ɵɵsyntheticHostProperty","localeEn","LOCALE_DATA","LocaleDataIndex","findLocaleData","normalizedLocale","getLocaleData","getLocalePluralCase","PluralCase","ng","common","FirstDayOfWeek","WeekendRange","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","Directionality","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","SHIFT","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","setLocaleId","assertDefined","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","changeMask","changeMaskCounter","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","anchorIdx","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","getCaseIndex","icuExpression","bindingValue","cases","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","loadIcuContainerVisitor","_stack","_removes","_index","enterIcu","icuContainerIteratorNext","removeOpCode","icuContainerIteratorStart","BINDING_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","MARKER","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","setTNodeInsertBeforeIndex","assertEqual","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","textValue","toMaskBit","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","binding","blocks","prevPos","braceStack","braces","block","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","addRemoveNode","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","tI18n","applyCreateOpCodes","appendNow","ɵɵi18n","ɵɵi18nEnd","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_parent","_bootstrapComponents","destroyCbs","componentFactoryResolver","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","createEnvironmentInjector","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","bindingRoot","bindingUpdated3","getPureFunctionReturnValue","ɵɵpureFunction4","pureFunction4Internal","ɵɵpureFunction5","exp5","returnValueIndex","lastReturnValue","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","_changesDetected","resultsTree","identityAccessor","newResultFlat","flat","POSITIVE_INFINITY","arrayEquals","valueA","valueB","notifyOnChanges","setDirty","addLViewToLContainer","addToDOM","insertView","containerLength","trackMovedView","addViewToDOM","parentNativeNode","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","createEmbeddedViewImpl","embeddedLView","createAndRenderEmbeddedLView","declarationLView","templateTNode","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","viewRef","insertImpl","createComponent","componentFactoryOrType","isComponentFactory","isType","ngModuleRef","componentFactory","contextInjector","componentRef","insert","skipDomInsertion","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","ɵɵqueryRefresh","isCreationMode","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵloadQuery","loadQueryInternal","storeCleanupWithContext","ɵɵtemplateRefExtractor","isNgModule","APP_INITIALIZER","ApplicationInitStatus","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","Console","log","getGlobalLocale","$localize","InitialRenderPendingTasks","_class16","hasPendingTasks","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","_class17","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","using","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_DESTROY_LISTENERS","APP_BOOTSTRAP_LISTENER","NgProbeToken","createPlatformFactory","parentPlatformFactory","extraProviders","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","PlatformRef","runPlatformInitializers","createPlatformInjector","assertPlatform","requiredToken","_modules","_destroyListeners","bootstrapModuleFactory","moduleFactory","ngZone","getNgZone","ngZoneToUse","getNgZoneOptions","eventCoalescing","runCoalescing","ngZoneEventCoalescing","ngZoneRunCoalescing","moduleRef","createNgModuleRefWithProviders","internalProvideZoneChangeDetection","ngZoneFactory","ngZoneChangeDetectionScheduler","NgZoneChangeDetectionScheduler","INTERNAL_APPLICATION_ERROR_HANDLER","ngZoneApplicationErrorHandlerFactory","exceptionHandler","_callAndReportToErrorHandler","initStatus","_moduleDoBootstrap","compilerOptions","optionsReducer","compileNgModuleFactory","ApplicationRef","ngDoBootstrap","destroyListeners","objs","_class21","_bootstrapListeners","_runningTick","_views","internalErrorHandler","zoneIsStable","componentTypes","componentOrFactory","cf","compRef","_loadComponent","tick","attachView","viewCount","warnIfDestroyed","userErrorHandler","_class22","applicationRef","_onMicrotaskEmptySubscription","isDevMode","ChangeDetectorRef","_class23","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","supports","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","forEachItem","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","collection","check","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","defaultKeyValueDiffersFactory","KeyValueDiffers","_class25","kv","platformCore","ApplicationModule","_class26","elementInjector","reflectComponentType","isSignal","BaseControlValueAccessor","_elementRef","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","isDisabled","BuiltInControlValueAccessor","ɵ_class2_BaseFactory","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","writeValue","ɵ_class3_BaseFactory","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","control","maxValidator","requiredValidator","requiredTrue","requiredTrueValidator","emailValidator","minLength","minLengthValidator","minlength","requiredLength","actualLength","maxLength","maxLengthValidator","maxlength","patternValidator","nullValidator","compose","validators","composeAsync","regexStr","requiredPattern","actualValue","isPresent","toObservable","mergeErrors","arrayOfErrors","executeValidators","validator","normalizeValidators","isValidatorFn","validate","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","valid","pristine","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","isUntouched","isPristine","isInvalid","isPending","isSubmitted","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","isGroup","controls","assertAllValuesPresent","_forEachChild","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","onlySelf","markAllAsTouched","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","markAsPending","emitEvent","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","setParent","getRawValue","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","FormGroup","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","patchValue","_reduceChildren","_syncPendingControls","subtreeUpdated","_reduceValue","initValue","FormRecord","CALL_SET_DISABLED_STATE","setDisabledStateDefault","controlPath","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","updateModel","onSubmit","onReset","resetForm","removeListItem","isFormControlState","formState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","AbstractFormGroupDirective","_checkParentType","ɵ_class8_BaseFactory","formControlBinding$1","NgModel","resolvedPromise","_changeDetectorRef","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","disabledValue","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","ɵ_class12_BaseFactory","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistryModule","RadioControlRegistry","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","_registry","setDisabledStateFired","_fn","formControlName","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","_ngModelWarningSentOnce","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","formGroupNameProvider","FormGroupName","_hasInvalidParent","formArrayNameProvider","FormArrayName","controlNameBinding","FormControlName","_added","AbstractValidatorDirective","_validator","inputName","normalizeInput","_enabled","createValidator","MAX_VALIDATOR","MaxValidator","_class27","toFloat","ɵ_class27_BaseFactory","REQUIRED_VALIDATOR","RequiredValidator","ɵ_class29_BaseFactory","PATTERN_VALIDATOR","PatternValidator","ɵ_class34_BaseFactory","ɵInternalFormsSharedModule","_class35","FormArray","at","_registerControl","removeAt","isAbstractControlOptions","FormBuilder","_class36","useNonNullable","nnfb","reducedControls","_reduceControls","createdControls","_createControl","UntypedFormBuilder","controlsConfig","ɵ_class38_BaseFactory","FormsModule","_class39","ReactiveFormsModule","_class40","warnOnNgModelWithFormControl","BLOCK_MARKER$1","$localize$1","messageParts","stripBlock","raw","BLOCK_MARKER","messagePart","rawMessagePart","findEndOfBlock","cooked","cookedIndex","rawIndex","ɵ$localize","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","ɵsetRootDomAdapter","onAndCancel","evt","dispatchEvent","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","relativePath","urlParsingNode","pathName","resetBaseElement","getCookie","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","_eventNameToPlugin","manager","_plugins","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","appId","nonce","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","ShadowDomRenderer","isTemplateNode","namespaceUri","removeAttributeNS","decoratePreventDefault","eventHandler","hostEl","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","altKey","ctrlKey","metaKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","_document","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","didWork","decrement","didWork_","parentElement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","withServerTransition","Title","newTitle","createTitle","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵ_sanitizeHtml","ɵ_sanitizeUrl","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","takeLast","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segmentGroup","pathMatch","hasChildren","posParams","consumed","shallowEqual","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serialize","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","encodeURI","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decode","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","MATRIX_PARAM_SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","matchMatrixKeySegments","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","dt","squashSegmentGroup","newChildren","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","outlet","createUrlTreeFromSegmentGroup","relativeTo","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","outlets","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","isMatrixParams","createPositionApplyingDoubleDots","ci","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","curr","compare","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","RouterEvent","NavigationStart","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancel","reason","NavigationSkipped","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","routerEvent","BeforeActivateRoutes","RedirectRequest","OutletContext","ChildrenOutletContexts","attachRef","contexts","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","Tree","pathFromRoot","findNode","siblings","findPath","cc","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","urlTree","rootComponent","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","flattenInherited","_resolvedData","_resolve","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","deactivate","initializeOutletWithName","unsubscribeFromRouteData","attach","activateWith","isActivated","activatedRouteData","cmp","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","mirror","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirectTo","navigationBehaviorOptions","navigationCancelingError","redirectUrl","cancellationCode","isNavigationCancelingError$1","ɵEmptyOutletComponent","standardizeConfig","getOutlet","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","redirectIfUrlTree","NoMatch","AbsoluteRedirect","noMatch$1","absoluteRedirect","newTree","ApplyRedirects","noMatchError","lineralizeSegments","applyRedirectCommands","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatch","canMatchObservables","injectionToken","guard","isCanMatch","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","Recognizer","configLoader","rootComponentType","allowRedirects","applyRedirects","recognize","processSegmentGroup","rootNode","routeState","createUrlTreeFromSnapshot","inheritParamsAndData","routeNode","processSegment","sortedConfig","sortByMatchingOutlets","scan","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","localeCompare","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","isImmediateMatch","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","newSegments","getData","_loadedComponent","getResolve","getChildConfig","childInjector","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","cfg","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","hasStaticTitle","switchTap","nextResult","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","loadModuleFactoryOrRoutes","factoryOrRoutes","rawRoutes","isWrappedDefaultExport","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","transitionAbortSubject","rootContexts","afterPreactivation","handleNavigationRequest","setupNavigations","initialUrlTree","initialRouterState","currentUrlTree","currentRawUrl","currentBrowserUrl","extractedUrl","urlHandlingStrategy","extract","rawUrl","extras","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","initialUrl","previousNavigation","browserUrlTree","urlTransition","navigated","shouldProcessUrl","serializer","recognize$1","finalUrl","routesRecognized","navStart","skipLocationChange","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","isBoolean","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivate","canActivateObservables","isCanActivate","guardsEnd","cancelNavigationTransition","resolveStart","dataResolved","resolveData","canActivateChecksResolved","runResolve","resolveNode","getDataKeys","getOwnPropertySymbols","getResolver","resolver","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","titleStrategy","updateTitle","isRedirectingNavigationCancelingError$1","ee","navCancel","isBrowserTriggeredNavigation","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵ_class11_BaseFactory","ROUTER_CONFIGURATION","UrlHandlingStrategy","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","defaultMalformedUriErrorHandler","exactMatchOptions","subsetMatchOptions","Router","navigationTransitions","browserPageId","canceledNavigationResolution","currentPageId","ɵrouterPageId","disposed","ɵConsole","isNgZoneEnabled","malformedUriErrorHandler","lastSuccessfulId","urlUpdateStrategy","componentInputBindingEnabled","eventsSubscription","resetConfig","rawUrlTree","routerState","subscribeToNavigationEvents","isPublicRouterEvent","setBrowserUrl","restoreHistory","mergedTree","scheduleNavigation","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","locationSubscription","stateCopy","parseUrl","serializeUrl","getCurrentNavigation","createUrlTree","navigationExtras","queryParamsHandling","preserveFragment","relativeToUrlSegmentGroup","removeEmptyProps","navigateByUrl","validateCommands","isActive","matchOptions","priorPromise","generateNgRouterState","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","RouterLink","tabIndexAttribute","onChanges","isAnchorElement","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","sanitizedValue","RouterLinkActive","_isActive","cdr","routerLinkActiveOptions","isActiveChange","routerEventsSubscription","links","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","routerLinkActive","hasActiveLinks","ariaCurrentWhenActive","isActiveMatchOptions","isActiveCheckFn","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","routerNgProbeToken","provideForRootGuard","useHash","provideInitialNavigation","bindToComponentInputs","ROUTER_INITIALIZER","forChild","locationInitialized","race","raceInit","subscriptions","getOppositePlacement","placement","getBasePlacement","getOppositeVariationPlacement","auto","basePlacements","viewport","popper","variationPlacements","placements","modifierPhases","getWindow","isHTMLElement","ShadowRoot","getDocumentElement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","visualViewport","addVisualOffsets","offsetLeft","offsetTop","getWindowScroll","win","getWindowScrollBarX","getNodeName","getParentNode","assignedSlot","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","offsetParent","getOffsetParent","getContainingBlock","isFirefox","css","contain","willChange","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","strategy","getViewportRect","layoutViewport","getInnerBoundingClientRect","clientTop","clientLeft","getDocumentRect","winScroll","getVariation","getMainAxisFromPlacement","computeOffsets","reference","basePlacement","variation","commonX","commonY","mainAxis","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","popperRect","rects","clippingClientRect","getClippingRect","mainClippingParents","getClippingParents","clippingParents","clipperElement","clippingRect","accRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","modifiers_flip","flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","getExpandedFallbackPlacements","oppositePlacement","computeAutoPlacement","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","_loop","fittingPlacement","requiresIfExists","within","mathMax","mathMin","getLayoutRect","modifiers_preventOverflow","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","modifiers_arrow","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerOffset","_options$element","requires","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getNodeScroll","getHTMLElementScroll","order","visited","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","mergeByName","merged","runModifierEffects","_ref$options","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","passive","unsetSides","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","roundOffsetsByDPR","createPopper","_options$scroll","_options$resize","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","modifiers_offset","_options$offset","distanceAndSkiddingToXY","invertDistance","skidding","_data$state$placement","_c3","_c32","_class92_ng_template_0_Template","_class92_ng_template_2_Template","_class92_ng_template_4_Template","_class92_ng_template_6_Template","_class92_ng_template_8_Template","_class92_ng_template_10_Template","_class92_ng_template_12_li_0_a_1_ng_template_1_Template","_c42","currentPage","_class92_ng_template_12_li_0_a_1_Template","page_r21","ctx_r26","_r8","tplEllipsis","_class92_ng_template_12_li_0_a_2_ng_template_1_Template","_c43","a0","_class92_ng_template_12_li_0_a_2_Template","_r33","pageNumber_r25","ctx_r31","selectPage","ctx_r34","disabled_r23","ctx_r27","_r10","tplNumber","_class92_ng_template_12_li_0_Template","ctx_r36","ctx_r24","isEllipsis","_class92_ng_template_12_Template","pages","_class92_li_15_ng_template_2_Template","_c46","_class92_li_15_Template","_r39","ctx_r14","_r0","previousDisabled","tplFirst","page","_class92_li_16_ng_template_2_Template","_c49","_class92_li_16_Template","_r42","ctx_r41","ctx_r15","tplPrevious","_class92_ng_template_17_Template","_class92_li_18_ng_template_2_Template","_class92_li_18_Template","_r45","ctx_r44","ctx_r17","_r4","nextDisabled","tplNext","_class92_li_19_ng_template_2_Template","_class92_li_19_Template","_r48","ctx_r47","pageCount","ctx_r18","tplLast","_c54","_class99_span_1_Template","_class102_ng_template_0_Template","_class102_ng_template_2_ng_template_3_Template","_class102_ng_template_2_Template","_r7","index_r4","ctx_r6","enter","ctx_r8","handleClick","ctx_r2","nextRate","isInteractive","starTemplate","starTemplateFromContent","getValueInRange","isDefined","reflow","getActiveElement","activeEl","transitionTimerDelayMs","noopFn","runningTransitions","ngbRunTransition","startFn","runningTransition","transition$","endFn","transitionProperty","runInZone","finishTransition$","stop$","endWith","transitionDurationMs","getTransitionDurationMs","transitionDelay","transitionDuration","transitionEnd$","timer$","ngbCollapsingTransition","maxSize","dimension","setInitialClasses","measureCollapsingElementDimensionPx","hasShownClass","dimensionSize","NgbConfig","NgbAccordionConfig","_ngbConfig","closeOthers","_animation","NgbCollapseConfig","NgbCollapse","collapsed","isCollapsed","_isCollapsed","_afterInit","_runTransitionWithEvents","ngbCollapseChange","_runTransition","nextId$3","NgbAccordionBody","_item","NgbAccordionItem","_bodyTpl","animatingBodyCollapse","destroyOnHide","_createViewIfNotExists","_destroyViewIfExists","NgbAccordionCollapse","ngbCollapse","collapseId","toggleId","NgbAccordionToggle","accordion","NgbAccordionDirective","NgbAccordionButton","NgbAccordionHeader","_accordion","_subscriptions","_collapsed","_destroyOnHide","_ensureCanExpand","_collapse","collapse","_anItemWasAlreadyExpandedDuringInitialisation","itemId","_getItem","expandAll","_items","collapseAll","isExpanded","toExpand","NgbAlertModule","Key","Tab","Enter","Escape","Space","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","isContainedIn","matchesSelectorIfAny","closest","isMobile","maxTouchPoints","ngbAutoClose","closed$","insideElements","insideSelector","wrapAsyncForMobile","escapes$","which","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","getFocusableBoundaryElements","tabIndex","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","tabEvent","focusedElement","lastFocusedElement","NgbRTL","_class43","isRTL","placementSeparator","spacesRegExp","bootstrapPopperMatches","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","getPopperOptions","baseClass","placementVals","hasAuto","popperPlacements","_placement","getPopperClassPlacement","leftClass","rightClass","bsClassRegExp","popperElement","popperPlacement","getBootstrapBaseClassPlacement","newPrimary","classnames","newSecondary","classname","ngbPositioning","popperInstance","positioningOption","popperOptions","updatePopperOptions","createPopperLite","NgbDropdownConfig","_class58","autoClose","NgbDropdownItem","_class60","_disabled","NgbDropdownMenu","_class61","dropdown","isOpen","NgbDropdown","menuItems","onKeyDown","NgbDropdownAnchor","_class62","NgbDropdownToggle","_class63","_class64","_changeDetector","_destroyCloseHandlers$","_bodyContainer","_open","openChange","_positioning","_applyPlacementClasses","_setCloseHandlers","_applyContainer","_anchor","_menu","appendToBody","dropdownClass","_applyCustomDropdownClass","addPopperOffset","offset$1","_zoneSubscription","_positionMenu","_resetContainer","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","_isDropup","relatedTarget","menu","_getFirstPlacement","dropdownMenuElement","bodyContainer","newClass","oldClass","dropdownElement","_class65","ContentRef","PopupService","_componentType","_applicationRef","_windowRef","_contentRef","templateContext","_getContentRef","windowRef","NgbModalBackdrop","_class66","backdropClass","NgbActiveModal","WINDOW_ATTRIBUTES","BACKDROP_ATTRIBUTES","NgbModalRef","_applyWindowOptions","windowInstance","optionName","_applyBackdropOptions","backdropInstance","_windowCmptRef","_backdropCmptRef","componentInstance","_closed","_hidden","dismissed","_dismissed","_beforeDismiss","dismissEvent","_reject","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","ModalDismissReasons","BACKDROP_CLICK","ESC","NgbModalWindow","_class67","_elRef","_closed$","_elWithFocus","keyboard","fullscreenClass","fullscreen","_show","_disableEventHandling","dialogTransition$","_dialogEl","transitions$","_restoreFocus","_enableEventHandling","_setFocus","defaultPrevented","_bumpBackdrop","preventClose","autoFocusable","firstFocusable","elWithFocus","elementToFocus","ariaLabelledBy","ariaDescribedBy","windowClass","centered","modalDialogClass","ScrollBar","_class68","bodyStyle","actualPadding","NgbModalStack","_class69","_environmentInjector","_scrollBar","_rendererFactory","_activeWindowCmptHasChanged","_ariaHiddenValues","_scrollBarRestoreFn","_modalRefs","_windowCmpts","_activeInstances","activeWindowCmpt","_revertAriaHidden","_setAriaHidden","_restoreScrollBar","scrollBarRestoreFn","_hideScrollBar","contentInjector","containerEl","activeModal","contentRef","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","activeInstances","dismissAll","hasOpenModals","_createFromTemplateRef","_createFromString","_createFromComponent","componentNativeEl","unregisterModalRef","ngbWindowCmpt","NgbModalConfig","_class70","NgbModal","_class71","_modalStack","combinedOptions","NgbModalModule","_class72","_class83","NgbPaginationConfig","_class84","boundaryLinks","directionLinks","ellipses","NgbPaginationEllipsis","_class85","NgbPaginationFirst","_class86","NgbPaginationLast","_class87","NgbPaginationNext","_class88","NgbPaginationNumber","_class89","NgbPaginationPrevious","_class90","NgbPaginationPages","_class91","NgbPagination","_class92","pageChange","hasPrevious","hasNext","_updatePages","_applyEllipses","_applyRotation","leftOffset","_applyPagination","_setPageInRange","newPageNo","prevPageNo","collectionSize","newPage","tplPages","i18n_34","i18n_36","i18n_38","i18n_40","i18n_44","i18n_47","i18n_50","i18n_52","_r12","NgFor","NgbPaginationModule","_class93","Trigger","isManual","DEFAULT_ALIASES","delayOrNoop","NgbPopoverModule","_class97","NgbProgressbarConfig","_class98","animated","striped","showValue","NgbProgressbar","_class99","textType","getPercentValue","i18n_55","NgbProgressbarModule","_class100","NgbRatingConfig","_class101","readonly","resettable","tabindex","NgbRating","_class102","ariaValueText","leave","rateChange","handleBlur","handleKeyDown","_updateMax","_setupContexts","internalChange","newRate","NgbRatingModule","_class103","NgbTooltipConfig","_class122","triggers","disableTooltip","openDelay","closeDelay","nextId","NgbTooltipWindow","_class123","tooltipClass","NgbTooltip","_class124","_ngbTooltipWindowId","_popupService","ngbTooltip","_ngbTooltip","tooltipContext","_getPositionTargetElement","_unregisterListenersFn","listenToTriggers","isOpenedFn","openFn","closeFn","parsedTriggers","parseTriggers","trimmedTriggers","triggerPair","manualTriggers","observeTriggers","toggleFn","unsubscribeFn","triggerDelay","input$","filteredInput$","currentlyOpen","delayedOpen$","delayedClose$","positionTarget","_class125","ARIA_LIVE_DELAY_FACTORY","NgbActiveOffcanvas","NgbOffcanvasRef","_panelCmptRef","_removeOffcanvasElements","panelTransition$","OffcanvasDismissReasons","NgbOffcanvasBackdrop","_class132","static","NgbOffcanvasPanel","_class133","offcanvasTransition$","panelClass","NgbOffcanvasStack","_class134","_activePanelCmptHasChanged","_backdropAttributes","_panelAttributes","_activeInstance","_panelCmpt","activeOffcanvas","panelCmptRef","ngbOffcanvasRef","_registerOffcanvasRef","_registerPanelCmpt","_applyPanelOptions","activeInstance","_offcanvasRef","hasOpenOffcanvas","unregisterOffcanvasRef","ngbPanelCmpt","NgbOffcanvasConfig","_class135","NgbOffcanvas","_class136","_offcanvasStack","NgbOffcanvasModule","_class137","_c2","_class14_div_0_Template","headerTemplate","filterValue","_class14_div_8_Template","footerTemplate","_c4","_c5","_class18_ng_container_4_div_1_ng_template_1_Template","_r13","item_r7","ctx_r11","unselect","ctx_r9","escapeHTML","_class18_ng_container_4_div_1_ng_template_3_Template","_c6","_class18_ng_container_4_div_1_Template","labelTemplate","clearItem","_class18_ng_container_4_Template","selectedItems","trackByOption","_class18_5_ng_template_0_Template","_c7","_class18_5_Template","multiLabelTemplate","selectedValues","_class18_ng_container_9_ng_template_1_Template","_class18_ng_container_9_ng_template_3_Template","_class18_ng_container_9_Template","_r16","loadingSpinnerTemplate","_class18_span_10_Template","_class18_ng_dropdown_panel_13_div_2_ng_template_1_Template","item_r24","_class18_ng_dropdown_panel_13_div_2_ng_template_3_Template","_c8","a3","item$","_class18_ng_dropdown_panel_13_div_2_Template","_r30","ctx_r29","toggleItem","onItemHover","_r25","ctx_r19","itemsList","markedItem","htmlId","optgroupTemplate","optionTemplate","_class18_ng_dropdown_panel_13_div_3_ng_template_1_Template","ctx_r33","addTagText","_class18_ng_dropdown_panel_13_div_3_ng_template_3_Template","_class18_ng_dropdown_panel_13_div_3_Template","_r36","ctx_r35","unmarkItem","ctx_r37","selectTag","_r32","ctx_r20","tagTemplate","_class18_ng_dropdown_panel_13_ng_container_4_ng_template_1_Template","ctx_r39","_class18_ng_dropdown_panel_13_ng_container_4_ng_template_3_Template","_class18_ng_dropdown_panel_13_ng_container_4_Template","_r38","ctx_r21","notFoundTemplate","_class18_ng_dropdown_panel_13_ng_container_5_ng_template_1_Template","ctx_r42","_class18_ng_dropdown_panel_13_ng_container_5_ng_template_3_Template","_class18_ng_dropdown_panel_13_ng_container_5_Template","_r41","ctx_r22","typeToSearchTemplate","_class18_ng_dropdown_panel_13_ng_container_6_ng_template_1_Template","ctx_r45","_class18_ng_dropdown_panel_13_ng_container_6_ng_template_3_Template","_class18_ng_dropdown_panel_13_ng_container_6_Template","_r44","ctx_r23","loadingTextTemplate","_class18_ng_dropdown_panel_13_Template","viewPortItems","ctx_r49","ctx_r50","scrollToEnd","ctx_r51","multiple","virtualScroll","bufferAmount","appendTo","dropdownPosition","filteredItems","dropdownId","showAddTag","showNoItemsFound","showTypeToSearch","unescapedHTMLExp","hasUnescapedHTMLExp","htmlEscapes","NgItemLabelDirective","escape","ngItemLabel","NgOptionTemplateDirective","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","newId","diacritics","stripSpecialChars","ItemsList","_ngSelect","_selectionModel","_filteredItems","_markedIndex","markedIndex","noItemsToSelect","hideSelected","maxItemsSelected","maxSelectedItems","lastSelectedItem","setItems","mapItem","groupBy","_groupBy","_flatten","clearSelected","selectableGroupAsModel","_hideSelected","_showSelected","findItem","findBy","compareWith","bindValue","resolveNested","bindLabel","addItem","keepDisabled","marked","resetFilteredItems","findByLabel","term","searchFn","_defaultSearchFn","matchedItems","markNextItem","_stepToItem","markPreviousItem","markItem","markSelectedOrDefault","markDefault","lastMarkedIndex","_getLastMarkedIndex","$ngOptionLabel","$ngOptionValue","mapSelectedItems","opt","_getNextItemIndex","isFnKey","keyFn","isGroupByFn","withoutGroup","isObjectKey","selectableGroup","groupKey","groupValue","St","KeyCode","Backspace","NgDropdownPanelService","_dimensions","itemHeight","panelHeight","itemsPerViewport","calculateItems","itemsLength","indexByScrollTop","maxStart","topPadding","setDimensions","getScrollTo","itemTop","lastScroll","itemBottom","CSS_POSITIONS","SCROLL_SCHEDULER","NgDropdownPanelComponent","_panelService","outsideClick","_destroy$","_scrollToEndFired","_updateScrollHeight","_lastScrollPosition","_dropdown","currentPosition","_currentPosition","_itemsLength","_onItemsLengthChanged","_startOffset","_select","_virtualPadding","paddingElementRef","_scrollablePanel","scrollElementRef","_contentPanel","contentElementRef","_handleScroll","_handleOutsideClick","_appendDropdown","_setupMousedownListener","_onItemsChange","startFromOption","scrollToTag","panel","adjustPosition","_updateYPosition","_handleDropdownPosition","_calculateCurrentPosition","_updateDropdownClass","REMOVE_CSS_CLASS","ADD_CSS_CLASS","composedPath","_onContentScrolled","_checkToClose","_updateItemsRange","_setVirtualHeight","_updateItems","_measureDimensions","_renderItemsRange","_fireScrollToEnd","_updateVirtualHeight","optionHeight","dropdownEl","selectRect","_updateXPosition","minWidth","NgOptionComponent","_isDisabled","stateChange$","_previousLabel","NgSelectConfig","disableVirtualScroll","openOnEnter","appearance","ConsoleService","SELECTION_MODEL_FACTORY","NgSelectComponent","_itemsAreUsed","_compareWith","clearSearchOnAdd","_clearSearchOnAdd","closeOnSelect","deselectOnClick","_deselectOnClick","filtered","searchable","_isComposing","single","_editableSearchTerm","editableSearchTerm","autoFocus","newSelectionModel","markFirst","selectOnTab","clearOnBackspace","labelForId","inputAttrs","searchWhileComposing","minTermLength","keyDownFn","addTag","clearable","blurEvent","focusEvent","changeEvent","openEvent","closeEvent","searchEvent","clearEvent","addEvent","removeEvent","useDefaultClass","_defaultLabel","_pressedKeys","_keyPress$","_onTouched","_mergeGlobalConfig","currentPanelPosition","dropdownPanel","_handleKeyPresses","_setInputAttributes","_setItems","_manualOpen","_setItemsFromNgOptions","handleKeyCode","_handleArrowDown","_handleArrowUp","_handleSpace","_handleEnter","_handleTab","_handleBackspace","handleMousedown","handleClearClick","handleArrowClick","focused","_updateNgModel","_clearSearch","_onSelectionChanged","clearModel","_handleWriteValue","_isTypeahead","_setSearchTermFromItems","searchInput","readOnly","_primitive","handleTag","showClear","_validTerm","onCompositionStart","onCompositionEnd","typeahead","onInputFocus","onInputBlur","firstItem","mapNgOptions","handleOptionChange","changedOrDestroyed","ngOptions","_isValidWriteValue","validateBinding","ngModel","isValObject","letter","_scrollToMarked","autocorrect","autocapitalize","autocomplete","_changeSearch","_scrollToTag","_nextItemIsTag","nextStep","_r52","DefaultSelectionModelFactory","DefaultSelectionModel","_selected","groupAsModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_activeChildren","NgSelectModule","TranslateFakeLoader","ɵ_class_BaseFactory","MissingTranslationHandler","FakeMissingTranslationHandler","keySet","mergeDeep","Ie","TranslateParser","TranslateDefaultParser","interpolate","interpolateString","interpolateFunction","templateMatcher","TranslateCompiler","TranslateFakeCompiler","compile","compileTranslations","translations","ɵ_class4_BaseFactory","TranslateStore","defaultLang","USE_STORE","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","TranslateService","onTranslationChange","isolate","_onTranslationChange","onLangChange","_onLangChange","onDefaultLangChange","_onDefaultLangChange","_defaultLang","_currentLang","langs","_langs","_translations","currentLoader","parser","missingTranslationHandler","useDefaultLang","defaultLanguage","setDefaultLang","retrieveTranslations","changeDefaultLang","getDefaultLang","changeLang","_translationRequests","loadingTranslations","updateLangs","setTranslation","shouldMerge","getLangs","getParsedResult","translateService","getStreamOnTranslationChange","stream","instant","reloadLang","resetLang","browserLanguage","userLanguage","getBrowserCultureLang","browserCultureLang","TranslatePipe","updateValue","onTranslation","lastKey","lastParams","validArgs","SyntaxError","presetColors","isPresetColor","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","toHsv","toHex","getHue","hue","getSaturation","saturation","generate","patterns","pColor","colorString","theme","mix","rgb1","rgb2","TinyColor","originalInput","roundA","gradientType","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","getAlpha","setAlpha","alpha","isMonochrome","toHsl","toHsvString","toHslString","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","toName","formatSet","formattedString","lighten","brighten","darken","tint","shade","desaturate","saturate","greyscale","spin","analogous","slices","complement","monochromatic","modification","splitcomplement","onBackground","fg","bg","triad","polyad","tetrad","NZ_CONFIG","dynamicStyleMark","registerTheme","globalPrefixCls","cspNonce","getStyle","variables","formatColor","updater","colorVal","baseColor","colorPalettes","primaryColor","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","canUseDom","updateCSS","NzConfigService","configUpdated$","getConfig","prefixCls","getConfigForComponent","componentName","getConfigChangeEventForComponent","WithConfig","originalDescriptor","privatePropName","originalValue","assignedByUser","propertyAssignCounter","configValue","nzConfigService","_nzModuleName","consoleCommonBehavior","consoleFunc","isTestMode","notRecorded","asRecord","addMonths","dirtyAmount","endOfDesiredMonth","isSameYear","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","isSameMonth","startOfDay","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","startOfHour","isSameHour","dateLeftStartOfHour","dateRightStartOfHour","startOfMinute","setSeconds","isSameMinute","dateLeftStartOfMinute","dateRightStartOfMinute","startOfSecond","setMilliseconds","isSameSecond","dateLeftStartOfSecond","dateRightStartOfSecond","differenceInCalendarYears","differenceInCalendarMonths","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInMilliseconds","roundingMap","trunc","defaultRoundingMethod","getRoundingMethod","differenceInHours","roundingMethod","differenceInMinutes","differenceInSeconds","wrongSortOrder","rangeValue","isBeforeDay","normalizeRangeValue","hasTimePicker","activePart","newStart","CandyDate","newEnd","cloneDate","nativeDate","calendarStart","startOfMonth","getYear","setHms","setYear","dirtyYear","addYears","dirtyMonth","dateWithDesiredMonth","monthIndex","lastDayOfMonth","setDay","dirtyDay","currentDay","addDays","grain","toNativeDate","isBeforeYear","isBeforeMonth","isToday","isFirstDayOfMonth","isLastDayOfMonth","endOfDay","endOfMonth","NgTimeParser","matchMap","periodNarrow","periodWide","periodAbbreviated","genRegexp","getTimeResult","isNotNil","hourRegex","minuteRegex","secondRegex","hourMatch","minuteMatch","secondMatch","periodNarrowMatch","periodWideMatch","periodAbbreviatedMatch","periodsNarrow","periodsWide","periodsAbbreviated","arraysEqual","isNil","isNonEmptyString","isTemplateRef","toBoolean","valueFunctionProp","propDecoratorFactory","propDecorator","InputBoolean","InputNumber","isNumberFinite","toDecimal","decimal","initial","scrollbarVerticalSize","scrollbarHorizontalSize","scrollbarMeasure","scrollProp","MARK_KEY","getMark","mark","attachTo","injectCSS","styleNode","prepend","containerCache","placeholderStyle","existNode","findExistNode","newNode","getStatusClassNames","hasFeedback","startOfISOWeek","subMilliseconds","addMilliseconds","startOfUTCISOWeek","setUTCDate","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getUTCISOWeek","startOfUTCISOWeekYear","fourthOfJanuary","startOfUTCWeek","getUTCWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","startOfUTCWeekYear","firstWeek","addLeadingZeros","lightFormatters","signedYear","getUTCHours","getUTCSeconds","numberOfDigits","getUTCMilliseconds","formatTimezoneShort","dirtyDelimiter","absOffset","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","format_formatters","G","Y","signedWeekYear","R","Q","I","D","getUTCDayOfYear","setUTCMonth","startOfYearTimestamp","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","H","K","X","_localize","timezoneOffset","_originalDate","O","T","dateLongFormatter","timeLongFormatter","format_longFormatters","P","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","_options","rem100","defaultLocale","tokenValue","_date","_baseDate","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","_createForOfIteratorHelper","allowArrayLike","F","normalCompletion","didErr","_e2","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Super","NewTarget","esm_typeof","Z","toPropertyKey","Setter","_utcDate","ValueSetter","_Setter","validateValue","subPriority","DateToSystemTimezoneSetter","_Setter2","_super2","_this2","timestampIsSet","convertedDate","Parser","dateString","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setUTCWeek","dirtyWeek","ISOWeekParser","setUTCISOWeek","dirtyISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","DayOfYearParser","setUTCDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","Pagination","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","DatePicker","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangePlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","timePickerLocale","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","emptyText","selectAll","selectInvert","selectionAll","sortTitle","triggerDesc","triggerAsc","cancelSort","filterCheckall","filterSearchPlaceholder","selectNone","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","Icon","Text","edit","PageHeader","preview","CronExpression","cronError","secondError","minuteError","hourError","dayError","monthError","weekError","QRCode","expired","refresh","zh_CN","NzI18nService","localeChange","_change","setLocale","setDateLocale","_getObjectPath","getDateLocale","NzI18nPipe","NzI18nModule","NZ_DATE_CONFIG","NZ_DATE_CONFIG_DEFAULT","DateHelperService","i18n","mergeDateConfig","DATE_HELPER_SERVICE_FACTORY","DateHelperByDateFns","DateHelperByDatePipe","getISOWeek","startOfISOWeekYear","getISOWeekYear","getFirstDayOfWeek","defaultWeekStartsOn","formatStr","dirtyFormatStr","_options$locale2","_options$locale2$opti","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","originalDate","formatterOptions","firstCharacter","longFormatter","longFormatters","cleanEscapedString","formatters","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parseDate","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","_step","subFnOptions","setters","usedTokens","_iterator","incompatibleTokens","incompatibleToken","usedToken","fullToken","_ret","uniquePrioritySetters","setterArray","_step2","_iterator2","parseTime","ɵNgTimeParser","monthFormat","weekFormat","LOTTIE_OPTIONS","AnimationLoader","player$","convertPlayerOrLoaderToObservable","playerOrLoader","createAnimationItem","resolveOptions","BaseDirective","animationLoader","containerClass","animationCreated","getAnimationItem","awaitAnimationItemAndStartListening","loopComplete","enterFrame","segmentStart","configReady","dataReady","domLoaded","destroy$","loadAnimation$","animationItem$","setupLoadAnimationListener","destroyAnimation","LottieDirective","LottieComponent","arrReducer","_class18_ng_container_2_2_ng_template_0_Template","_class18_ng_container_2_2_Template","slide_r1","i_r2","tplRef","preparePublicSlide","_class18_ng_container_2_Template","marginL","marginR","heightState","a4","isMouseDragable","isTouchDragable","_class19_div_2_Template","owlDOMData","stageData","slidesData","_class19_ng_container_3_div_5_Template","dot_r4","moveByDot","showInnerContent","innerContent","_class19_ng_container_3_Template","ctx_r7","navData","htmlText","dotsData","OwlCarouselOConfig","OwlOptionsMockedTypes","OwlLogger","Event","State","Width","Inner","Outer","CarouselService","invalidated","_invalidated","_states","logger","isResponsive","isRefreshed","isGrab","paddingL","paddingR","initializing","animating","relative","_current","settings","slide","grid","widths","_mergers","mergeFit","_widths","clones","rewind","_clones","clonedIdPrefix","isCloned","coordinates","_coordinates","stagePadding","maximum","inner","outer","_op","isCentered","getViewCurSettings","_viewSettingsShipper$","getInitializedState","_initializedCarousel$","getChangeState","_changeSettingsCarousel$","getChangedState","_changedSettingsCarousel$","getTranslateState","_translateCarousel$","getTranslatedState","_translatedCarousel$","getResizeState","_resizeCarousel$","getResizedState","_resizedCarousel$","getRefreshState","_refreshCarousel$","getRefreshedState","_refreshedCarousel$","getDragState","_dragCarousel$","getDraggedState","_draggedCarousel$","configOptions","checkedOptions","_validateOptions","mockedTypes","setRightOption","_isNumeric","_validateItems","skip_validateItems","_isNumberOrBoolean","_isNumberOrString","_isStringOrBoolean","setCarouselWidth","carouselWidth","slides","_defineSlidesData","setOptionsForViewport","_trigger","invalidate","overwrites","mergers","dataMerge","_breakpoint","startPosition","sendChanges","_optionsLogic","_pipe","filteredPipe","setCurSlideClasses","onResize","curWidth","prepareDragging","transformArr","stage","enterDragging","defineNewCoordsDrag","dragData","pull","difference","pointer","finishDragging","dragObj","clickAttacher","currentSlideI","newCurrent","dragEndSpeed","smartSpeed","coordinate","onTransitionEnd","slideTransition","_speed","_suppress","reciprocalItemsWidth","newPosition","factor","revert","delayForLoop","_viewport","loadMap","hashFragment","dataHash","currentClasses","isAnimated","isDefAnimatedIn","isDefAnimatedOut","animateIn","isCustomAnimatedIn","animateOut","isCustomAnimatedOut","_supress","originalEvent","changedTouches","NavigationService","carouselService","spyDataStreams","navSubscription","initializedCarousel$","_updateNavPages","draw","changedSettings$","refreshedCarousel$","navMerge$","_navData","navText","_dotsData","upper","dotsEach","slideBy","_pages","dotContent","startI","_updateNavButtons","_updateDots","curActiveDotI","finalCurrent","_getPosition","successor","standard","dotId","dot","dotsSpeed","toSlideById","WINDOW","WindowRef","nativeWindow","WINDOW_PROVIDERS","BrowserWindowRef","windowFactory","browserWindowRef","DocumentRef","nativeDocument","DOCUMENT_PROVIDERS","BrowserDocumentRef","documentFactory","browserDocumentRef","visibilityState","AutoplayService","isAutoplayStopped","_isAutoplayStopped","winRef","docRef","autoplaySubscription","_handleChangeObservable","resized$","autoplayMerge$","_paused","_setAutoPlayInterval","autoplayMouseleaveTimeout","_getNextTimeout","_timeout","_isArtificialAutoplayTimeout","autoplaySpeed","autoplayTimeout","_playAfterTranslated","startPausing","autoplayHoverPause","startPlayingMouseLeave","startPlayingTouchEnd","LazyLoadService","lazyLoadSubscription","isLazyLoad","lazyLoad","changeSettings$","resizedCarousel$","lazyLoadMerge$","_defineLazyLoadSlides","lazyLoadEager","_load","AnimateService","animateSubscription","dragCarousel$","draggedCarousel$","translatedCarousel$","dragTranslatedMerge$","swapping","translateCarousel$","_swap","animateMerge$","incoming","outgoing","AutoHeightService","autoHeightSubscription","autoHeight","autoHeight$","HashService","hashSubscription","listenToRoute","URLhashListener","newCurSlide","newCurFragment","currentHashFragment","hashFragment$","CarouselSlideDirective","_dataMerge","isNumeric","ResizeService","onResize$","resizeObservable$","StageComponent","animateService","moving","newSlide","_oneMouseTouchMove","_onDragMove","_onDragEnd","listenerOneClick","_drag","onMouseDown","owlDraggable","_onDragStart","onTouchStart","targetTouches","onTouchCancel","onSelectStart","_oneMoveSubsription","_oneDragMove$","_sendChanges","_prepareDragging","_pointer","listenerMouseUp","bindOnDragEnd","listenerTouchEnd","listenerOneMouseMove","bindOneMouseTouchMove","listenerOneTouchMove","_difference","listenerATag","_is","blockClickAnchorInDragging","listenerMouseMove","bindOnDragMove","listenerTouchMove","_enterDragging","HTMLAnchorElement","stageOrExit","_animate","_finishDragging","_oneClickHandler","firstC","specificState","_enter","CarouselComponent","resizeService","navigationService","autoplayService","lazyLoadService","autoHeightService","hashService","onVisibilityChange","carouselWindowWidth","prevOptions","carouselLoaded","_winResizeWatcher","_slidesChangesSubscription","resizeSubscription","_allObservSubscription","_viewCurSettings$","gatherTranslatedData","slidesOutputData","translated","_changeCarousel$","_changedCarousel$","changedPosition","_draggingCarousel$","_carouselMerge$","responsiveRefreshRate","activeSlides","startPlayML","startPlayTE","stopAutoplay","startAutoplay","_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__","hint","prim","__decorate","decorators","decorate","_arguments","generator","fulfilled","rejected","throw","adopt","verb","fulfill","settle","__values","SuppressedError"],"sourceRoot":"webpack:///","sources":["./src/app/app-const.ts","./src/app/core/backend/api-configuration.ts","./src/app/core/backend/base-service.ts","./src/app/core/backend/request-builder.ts","./src/app/core/backend/fn/account/api-account-add-user-post.ts","./src/app/core/backend/fn/account/api-account-add-user-post-plain.ts","./src/app/core/backend/fn/account/api-account-change-password-post.ts","./src/app/core/backend/fn/account/api-account-change-password-post-plain.ts","./src/app/core/backend/fn/account/api-account-delete-users-delete.ts","./src/app/core/backend/fn/account/api-account-delete-users-delete-plain.ts","./src/app/core/backend/fn/account/api-account-get.ts","./src/app/core/backend/fn/account/api-account-get-plain.ts","./src/app/core/backend/fn/account/api-account-get-user-by-id-get.ts","./src/app/core/backend/fn/account/api-account-get-user-by-id-get-plain.ts","./src/app/core/backend/fn/account/api-account-get-users-get.ts","./src/app/core/backend/fn/account/api-account-get-users-get-plain.ts","./src/app/core/backend/fn/account/api-account-login-post.ts","./src/app/core/backend/fn/account/api-account-login-post-plain.ts","./src/app/core/backend/fn/account/api-account-register-parent-post.ts","./src/app/core/backend/fn/account/api-account-register-parent-post-plain.ts","./src/app/core/backend/fn/account/api-account-register-student-post.ts","./src/app/core/backend/fn/account/api-account-register-student-post-plain.ts","./src/app/core/backend/fn/account/api-account-update-password-post.ts","./src/app/core/backend/fn/account/api-account-update-password-post-plain.ts","./src/app/core/backend/services/account.service.ts","./src/app/core/backend/fn/activity/api-activity-get.ts","./src/app/core/backend/fn/activity/api-activity-get-plain.ts","./src/app/core/backend/fn/activity/api-activity-id-delete.ts","./src/app/core/backend/fn/activity/api-activity-id-get.ts","./src/app/core/backend/fn/activity/api-activity-id-get-plain.ts","./src/app/core/backend/fn/activity/api-activity-id-put.ts","./src/app/core/backend/fn/activity/api-activity-post.ts","./src/app/core/backend/services/activity.service.ts","./src/app/core/backend/fn/banner/api-banner-get.ts","./src/app/core/backend/fn/banner/api-banner-get-plain.ts","./src/app/core/backend/fn/banner/api-banner-id-delete.ts","./src/app/core/backend/fn/banner/api-banner-id-get.ts","./src/app/core/backend/fn/banner/api-banner-id-get-plain.ts","./src/app/core/backend/fn/banner/api-banner-id-put.ts","./src/app/core/backend/fn/banner/api-banner-post.ts","./src/app/core/backend/services/banner.service.ts","./src/app/core/backend/fn/chapter/api-chapter-change-status-put.ts","./src/app/core/backend/fn/chapter/api-chapter-get.ts","./src/app/core/backend/fn/chapter/api-chapter-get-plain.ts","./src/app/core/backend/fn/chapter/api-chapter-id-delete.ts","./src/app/core/backend/fn/chapter/api-chapter-id-get.ts","./src/app/core/backend/fn/chapter/api-chapter-id-get-plain.ts","./src/app/core/backend/fn/chapter/api-chapter-id-put.ts","./src/app/core/backend/fn/chapter/api-chapter-post.ts","./src/app/core/backend/services/chapter.service.ts","./src/app/core/backend/fn/comment/api-comment-change-status-put.ts","./src/app/core/backend/fn/comment/api-comment-get-all-comments-for-admin-get.ts","./src/app/core/backend/fn/comment/api-comment-get-all-comments-for-admin-get-plain.ts","./src/app/core/backend/fn/comment/api-comment-get-all-comments-get.ts","./src/app/core/backend/fn/comment/api-comment-get-all-comments-get-plain.ts","./src/app/core/backend/fn/comment/api-comment-get-pinned-comments-for-admin-get.ts","./src/app/core/backend/fn/comment/api-comment-get-pinned-comments-for-admin-get-plain.ts","./src/app/core/backend/fn/comment/api-comment-id-delete.ts","./src/app/core/backend/fn/comment/api-comment-id-get.ts","./src/app/core/backend/fn/comment/api-comment-id-get-plain.ts","./src/app/core/backend/fn/comment/api-comment-id-put.ts","./src/app/core/backend/fn/comment/api-comment-post.ts","./src/app/core/backend/services/comment.service.ts","./src/app/core/backend/fn/course/api-course-accept-student-put.ts","./src/app/core/backend/fn/course/api-course-change-status-put.ts","./src/app/core/backend/fn/course/api-course-get.ts","./src/app/core/backend/fn/course/api-course-get-plain.ts","./src/app/core/backend/fn/course/api-course-get-accepted-student-get.ts","./src/app/core/backend/fn/course/api-course-get-accepted-student-get-plain.ts","./src/app/core/backend/fn/course/api-course-get-pinned-student-get.ts","./src/app/core/backend/fn/course/api-course-get-pinned-student-get-plain.ts","./src/app/core/backend/fn/course/api-course-get-top-course-get.ts","./src/app/core/backend/fn/course/api-course-get-top-course-get-plain.ts","./src/app/core/backend/fn/course/api-course-id-delete.ts","./src/app/core/backend/fn/course/api-course-id-get.ts","./src/app/core/backend/fn/course/api-course-id-get-plain.ts","./src/app/core/backend/fn/course/api-course-id-put.ts","./src/app/core/backend/fn/course/api-course-post.ts","./src/app/core/backend/fn/course/api-course-reject-student-delete.ts","./src/app/core/backend/services/course.service.ts","./src/app/core/backend/fn/exam/api-exam-add-exam-post.ts","./src/app/core/backend/fn/exam/api-exam-change-status-put.ts","./src/app/core/backend/fn/exam/api-exam-delete-exam-id-delete.ts","./src/app/core/backend/fn/exam/api-exam-get-all-exams-get.ts","./src/app/core/backend/fn/exam/api-exam-get-all-exams-get-plain.ts","./src/app/core/backend/fn/exam/api-exam-get-exam-by-id-id-get.ts","./src/app/core/backend/fn/exam/api-exam-get-exam-by-id-id-get-plain.ts","./src/app/core/backend/fn/exam/api-exam-get-exam-quesions-for-edit-get.ts","./src/app/core/backend/fn/exam/api-exam-get-exam-quesions-for-edit-get-plain.ts","./src/app/core/backend/fn/exam/api-exam-get-exam-quesions-for-student-get.ts","./src/app/core/backend/fn/exam/api-exam-get-exam-quesions-for-student-get-plain.ts","./src/app/core/backend/fn/exam/api-exam-update-exam-put.ts","./src/app/core/backend/services/exam.service.ts","./src/app/core/backend/fn/level-years/api-level-years-change-status-put.ts","./src/app/core/backend/fn/level-years/api-level-years-get-all-level-years-by-level-id-get.ts","./src/app/core/backend/fn/level-years/api-level-years-get-all-level-years-by-level-id-get-plain.ts","./src/app/core/backend/fn/level-years/api-level-years-get-all-level-years-get.ts","./src/app/core/backend/fn/level-years/api-level-years-get-all-level-years-get-plain.ts","./src/app/core/backend/fn/level-years/api-level-years-id-delete.ts","./src/app/core/backend/fn/level-years/api-level-years-id-get.ts","./src/app/core/backend/fn/level-years/api-level-years-id-get-plain.ts","./src/app/core/backend/fn/level-years/api-level-years-id-put.ts","./src/app/core/backend/fn/level-years/api-level-years-post.ts","./src/app/core/backend/services/level-years.service.ts","./src/app/core/backend/fn/level/api-level-change-status-put.ts","./src/app/core/backend/fn/level/api-level-get.ts","./src/app/core/backend/fn/level/api-level-get-plain.ts","./src/app/core/backend/fn/level/api-level-id-delete.ts","./src/app/core/backend/fn/level/api-level-id-get.ts","./src/app/core/backend/fn/level/api-level-id-get-plain.ts","./src/app/core/backend/fn/level/api-level-id-put.ts","./src/app/core/backend/fn/level/api-level-post.ts","./src/app/core/backend/services/level.service.ts","./src/app/core/backend/fn/notification/api-notification-get-admin-notifcations-get.ts","./src/app/core/backend/fn/notification/api-notification-get-admin-notifcations-get-plain.ts","./src/app/core/backend/fn/notification/api-notification-get-student-notifcations-get.ts","./src/app/core/backend/fn/notification/api-notification-get-student-notifcations-get-plain.ts","./src/app/core/backend/fn/notification/api-notification-read-all-notification-put.ts","./src/app/core/backend/fn/notification/api-notification-read-all-notification-put-plain.ts","./src/app/core/backend/fn/notification/api-notification-read-notification-put.ts","./src/app/core/backend/fn/notification/api-notification-read-notification-put-plain.ts","./src/app/core/backend/fn/notification/api-notification-un-read-notification-count-get.ts","./src/app/core/backend/fn/notification/api-notification-un-read-notification-count-get-plain.ts","./src/app/core/backend/services/notification.service.ts","./src/app/core/backend/fn/parent/api-parent-accept-parent-student-post.ts","./src/app/core/backend/fn/parent/api-parent-add-parent-student-request-post.ts","./src/app/core/backend/fn/parent/api-parent-get-parent-requests-for-parent-get.ts","./src/app/core/backend/fn/parent/api-parent-get-parent-requests-for-parent-get-plain.ts","./src/app/core/backend/fn/parent/api-parent-get-student-by-code-parent-get.ts","./src/app/core/backend/fn/parent/api-parent-get-student-by-code-parent-get-plain.ts","./src/app/core/backend/fn/parent/api-parent-get-student-by-id-get.ts","./src/app/core/backend/fn/parent/api-parent-get-student-by-id-get-plain.ts","./src/app/core/backend/fn/parent/api-parent-get-student-dashboard-data-get.ts","./src/app/core/backend/fn/parent/api-parent-get-student-dashboard-data-get-plain.ts","./src/app/core/backend/fn/parent/api-parent-get-student-get.ts","./src/app/core/backend/fn/parent/api-parent-get-student-get-plain.ts","./src/app/core/backend/fn/parent/api-parent-register-parent-post.ts","./src/app/core/backend/fn/parent/api-parent-register-parent-post-plain.ts","./src/app/core/backend/services/parent.service.ts","./src/app/core/backend/fn/question/api-question-add-edit-question-dto-put.ts","./src/app/core/backend/fn/question/api-question-get.ts","./src/app/core/backend/fn/question/api-question-get-plain.ts","./src/app/core/backend/fn/question/api-question-id-delete.ts","./src/app/core/backend/fn/question/api-question-id-get.ts","./src/app/core/backend/fn/question/api-question-id-get-plain.ts","./src/app/core/backend/fn/question/api-question-post.ts","./src/app/core/backend/services/question.service.ts","./src/app/core/backend/fn/rate-course/api-rate-course-get.ts","./src/app/core/backend/fn/rate-course/api-rate-course-get-plain.ts","./src/app/core/backend/fn/rate-course/api-rate-course-id-delete.ts","./src/app/core/backend/fn/rate-course/api-rate-course-id-get.ts","./src/app/core/backend/fn/rate-course/api-rate-course-id-get-plain.ts","./src/app/core/backend/fn/rate-course/api-rate-course-post.ts","./src/app/core/backend/services/rate-course.service.ts","./src/app/core/backend/fn/rate-teacher/api-rate-teacher-get.ts","./src/app/core/backend/fn/rate-teacher/api-rate-teacher-get-plain.ts","./src/app/core/backend/fn/rate-teacher/api-rate-teacher-id-delete.ts","./src/app/core/backend/fn/rate-teacher/api-rate-teacher-id-get.ts","./src/app/core/backend/fn/rate-teacher/api-rate-teacher-id-get-plain.ts","./src/app/core/backend/fn/rate-teacher/api-rate-teacher-post.ts","./src/app/core/backend/services/rate-teacher.service.ts","./src/app/core/backend/fn/rate-video/api-rate-video-get.ts","./src/app/core/backend/fn/rate-video/api-rate-video-get-plain.ts","./src/app/core/backend/fn/rate-video/api-rate-video-id-delete.ts","./src/app/core/backend/fn/rate-video/api-rate-video-id-get.ts","./src/app/core/backend/fn/rate-video/api-rate-video-id-get-plain.ts","./src/app/core/backend/fn/rate-video/api-rate-video-post.ts","./src/app/core/backend/services/rate-video.service.ts","./src/app/core/backend/fn/stats/api-stats-get-admin-dashboard-data-get.ts","./src/app/core/backend/fn/stats/api-stats-get-admin-dashboard-data-get-plain.ts","./src/app/core/backend/fn/stats/api-stats-get-student-dashboard-data-get.ts","./src/app/core/backend/fn/stats/api-stats-get-student-dashboard-data-get-plain.ts","./src/app/core/backend/services/stats.service.ts","./src/app/core/backend/fn/student-exam/api-student-exam-add-student-exam-answer-post.ts","./src/app/core/backend/fn/student-exam/api-student-exam-add-student-exam-answer-post-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-correct-article-answer-post.ts","./src/app/core/backend/fn/student-exam/api-student-exam-correct-article-answer-post-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-finish-student-exam-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-finish-student-exam-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-new-student-exams-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-new-student-exams-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-solved-student-exams-for-student-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-solved-student-exams-for-student-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-answer-for-exam-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-answer-for-exam-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-answer-model-for-exam-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-answer-model-for-exam-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-exam-for-admin-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-exam-for-admin-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-exam-solved-for-admin-get.ts","./src/app/core/backend/fn/student-exam/api-student-exam-get-student-exam-solved-for-admin-get-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-remove-student-exam-for-admin-delete.ts","./src/app/core/backend/fn/student-exam/api-student-exam-remove-student-exam-for-admin-delete-plain.ts","./src/app/core/backend/fn/student-exam/api-student-exam-start-exam-post.ts","./src/app/core/backend/fn/student-exam/api-student-exam-start-exam-post-plain.ts","./src/app/core/backend/services/student-exam.service.ts","./src/app/core/backend/fn/student/api-student-add-student-post.ts","./src/app/core/backend/fn/student/api-student-add-student-subject-teacher-post.ts","./src/app/core/backend/fn/student/api-student-add-student-subject-teacher-post-plain.ts","./src/app/core/backend/fn/student/api-student-change-status-put.ts","./src/app/core/backend/fn/student/api-student-change-student-subject-teacher-status-put.ts","./src/app/core/backend/fn/student/api-student-get.ts","./src/app/core/backend/fn/student/api-student-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-accepted-students-get.ts","./src/app/core/backend/fn/student/api-student-get-accepted-students-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-courses-chapter-get.ts","./src/app/core/backend/fn/student/api-student-get-courses-chapter-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-courses-get.ts","./src/app/core/backend/fn/student/api-student-get-courses-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-parent-requests-for-student-get.ts","./src/app/core/backend/fn/student/api-student-get-parent-requests-for-student-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-pinded-students-get.ts","./src/app/core/backend/fn/student/api-student-get-pinded-students-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-student-subject-teacher-exel-report-get.ts","./src/app/core/backend/fn/student/api-student-get-student-subject-teacher-exel-report-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-student-subject-teacher-for-student-get.ts","./src/app/core/backend/fn/student/api-student-get-student-subject-teacher-for-student-get-plain.ts","./src/app/core/backend/fn/student/api-student-get-student-subject-teacher-get.ts","./src/app/core/backend/fn/student/api-student-get-student-subject-teacher-get-plain.ts","./src/app/core/backend/fn/student/api-student-id-delete.ts","./src/app/core/backend/fn/student/api-student-id-get.ts","./src/app/core/backend/fn/student/api-student-id-get-plain.ts","./src/app/core/backend/fn/student/api-student-put.ts","./src/app/core/backend/fn/student/api-student-request-course-post.ts","./src/app/core/backend/fn/student/api-student-request-course-post-plain.ts","./src/app/core/backend/fn/student/api-student-unsubscribe-course-delete.ts","./src/app/core/backend/fn/student/api-student-whatch-video-post.ts","./src/app/core/backend/services/student.service.ts","./src/app/core/backend/fn/subject/api-subject-change-status-put.ts","./src/app/core/backend/fn/subject/api-subject-get-all-subjects-get.ts","./src/app/core/backend/fn/subject/api-subject-get-all-subjects-get-plain.ts","./src/app/core/backend/fn/subject/api-subject-id-delete.ts","./src/app/core/backend/fn/subject/api-subject-id-get.ts","./src/app/core/backend/fn/subject/api-subject-id-get-plain.ts","./src/app/core/backend/fn/subject/api-subject-id-put.ts","./src/app/core/backend/fn/subject/api-subject-post.ts","./src/app/core/backend/services/subject.service.ts","./src/app/core/backend/fn/teacher/api-teacher-add-teacher-requsets-post.ts","./src/app/core/backend/fn/teacher/api-teacher-change-status-put.ts","./src/app/core/backend/fn/teacher/api-teacher-get.ts","./src/app/core/backend/fn/teacher/api-teacher-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-get-levels-by-teacher-id-get.ts","./src/app/core/backend/fn/teacher/api-teacher-get-levels-by-teacher-id-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-get-level-years-by-teacher-id-get.ts","./src/app/core/backend/fn/teacher/api-teacher-get-level-years-by-teacher-id-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-get-subjects-by-teacher-id-get.ts","./src/app/core/backend/fn/teacher/api-teacher-get-subjects-by-teacher-id-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-get-teacher-requset-by-id-get.ts","./src/app/core/backend/fn/teacher/api-teacher-get-teacher-requset-by-id-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-get-teacher-requsets-get.ts","./src/app/core/backend/fn/teacher/api-teacher-get-teacher-requsets-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-id-delete.ts","./src/app/core/backend/fn/teacher/api-teacher-id-get.ts","./src/app/core/backend/fn/teacher/api-teacher-id-get-plain.ts","./src/app/core/backend/fn/teacher/api-teacher-id-put.ts","./src/app/core/backend/fn/teacher/api-teacher-post.ts","./src/app/core/backend/services/teacher.service.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-change-status-put.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-get.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-get-plain.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-id-delete.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-id-get.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-id-get-plain.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-id-put.ts","./src/app/core/backend/fn/to-do-list/api-to-do-list-post.ts","./src/app/core/backend/services/to-do-list.service.ts","./src/app/core/backend/fn/video-course/api-video-course-change-is-free-put.ts","./src/app/core/backend/fn/video-course/api-video-course-change-status-put.ts","./src/app/core/backend/fn/video-course/api-video-course-get.ts","./src/app/core/backend/fn/video-course/api-video-course-get-plain.ts","./src/app/core/backend/fn/video-course/api-video-course-get-student-videos-by-chapter-get.ts","./src/app/core/backend/fn/video-course/api-video-course-get-student-videos-by-chapter-get-plain.ts","./src/app/core/backend/fn/video-course/api-video-course-id-delete.ts","./src/app/core/backend/fn/video-course/api-video-course-id-get.ts","./src/app/core/backend/fn/video-course/api-video-course-id-get-plain.ts","./src/app/core/backend/fn/video-course/api-video-course-id-put.ts","./src/app/core/backend/fn/video-course/api-video-course-post.ts","./src/app/core/backend/services/video-course.service.ts","./src/app/core/services/auth.service.ts","./src/app/core/services/language.service.ts","./src/app/core/services/spinner.service.ts","./src/app/extrapages/page404/page404.component.ts","./src/app/extrapages/page404/page404.component.html","./src/app/layouts/topbar/account-dropdown/account-dropdown.component.html","./src/app/layouts/topbar/account-dropdown/account-dropdown.component.ts","./src/app/standalone-components/spinner/spinner.component.html","./src/app/standalone-components/spinner/spinner.component.ts","./src/environments/environment.release.ts","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./node_modules/@angular/common/locales/ar-EG.mjs","./node_modules/@angular/common/locales/en.mjs","./node_modules/@ngx-translate/http-loader/dist/fesm2022/ngx-translate-http-loader.mjs","./node_modules/date-fns/esm/locale/ar/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/ar/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/ar/_lib/formatRelative/index.js","./node_modules/date-fns/esm/locale/ar/_lib/localize/index.js","./node_modules/date-fns/esm/locale/ar/index.js","./node_modules/date-fns/esm/locale/ar/_lib/match/index.js","./src/app/layouts/public-layout/public-layout.component.html","./src/app/app-routing.module.ts","./src/app/layouts/public-layout/public-layout.component.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/core/helpers/error.interceptor.ts","./src/app/core/helpers/jwt.interceptor.ts","./src/app/layouts/lang-changer/lang-changer.component.html","./src/app/layouts/lang-changer/lang-changer.component.ts","./src/app/layouts/topbar/system-switcher/system-switcher.component.ts","./src/app/layouts/topbar/system-switcher/system-switcher.component.html","./src/app/layouts/layouts.module.ts","./src/app/core/backend/be-api.module.ts","./src/app/app.module.ts","./src/main.ts","./node_modules/@ctrl/tinycolor/dist/module/conversion.js","./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","./node_modules/@ctrl/tinycolor/dist/module/format-input.js","./node_modules/@ctrl/tinycolor/dist/module/util.js","./node_modules/can-use-dom/index.js","./node_modules/date-fns/esm/_lib/defaultOptions/index.js","./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","./node_modules/date-fns/esm/_lib/requiredArgs/index.js","./node_modules/date-fns/esm/_lib/toInteger/index.js","./node_modules/date-fns/esm/constants/index.js","./node_modules/date-fns/esm/isValid/index.js","./node_modules/date-fns/esm/isDate/index.js","./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","./node_modules/date-fns/esm/startOfWeek/index.js","./node_modules/date-fns/esm/toDate/index.js","./node_modules/lottie-web/build/player/lottie.js","./node_modules/moment/locale/af.js","./node_modules/moment/locale/ar-dz.js","./node_modules/moment/locale/ar-kw.js","./node_modules/moment/locale/ar-ly.js","./node_modules/moment/locale/ar-ma.js","./node_modules/moment/locale/ar-sa.js","./node_modules/moment/locale/ar-tn.js","./node_modules/moment/locale/ar.js","./node_modules/moment/locale/az.js","./node_modules/moment/locale/be.js","./node_modules/moment/locale/bg.js","./node_modules/moment/locale/bm.js","./node_modules/moment/locale/bn-bd.js","./node_modules/moment/locale/bn.js","./node_modules/moment/locale/bo.js","./node_modules/moment/locale/br.js","./node_modules/moment/locale/bs.js","./node_modules/moment/locale/ca.js","./node_modules/moment/locale/cs.js","./node_modules/moment/locale/cv.js","./node_modules/moment/locale/cy.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de-at.js","./node_modules/moment/locale/de-ch.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/dv.js","./node_modules/moment/locale/el.js","./node_modules/moment/locale/en-au.js","./node_modules/moment/locale/en-ca.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/en-ie.js","./node_modules/moment/locale/en-il.js","./node_modules/moment/locale/en-in.js","./node_modules/moment/locale/en-nz.js","./node_modules/moment/locale/en-sg.js","./node_modules/moment/locale/eo.js","./node_modules/moment/locale/es-do.js","./node_modules/moment/locale/es-mx.js","./node_modules/moment/locale/es-us.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/et.js","./node_modules/moment/locale/eu.js","./node_modules/moment/locale/fa.js","./node_modules/moment/locale/fi.js","./node_modules/moment/locale/fil.js","./node_modules/moment/locale/fo.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr-ch.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/fy.js","./node_modules/moment/locale/ga.js","./node_modules/moment/locale/gd.js","./node_modules/moment/locale/gl.js","./node_modules/moment/locale/gom-deva.js","./node_modules/moment/locale/gom-latn.js","./node_modules/moment/locale/gu.js","./node_modules/moment/locale/he.js","./node_modules/moment/locale/hi.js","./node_modules/moment/locale/hr.js","./node_modules/moment/locale/hu.js","./node_modules/moment/locale/hy-am.js","./node_modules/moment/locale/id.js","./node_modules/moment/locale/is.js","./node_modules/moment/locale/it-ch.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/ja.js","./node_modules/moment/locale/jv.js","./node_modules/moment/locale/ka.js","./node_modules/moment/locale/kk.js","./node_modules/moment/locale/km.js","./node_modules/moment/locale/kn.js","./node_modules/moment/locale/ko.js","./node_modules/moment/locale/ku.js","./node_modules/moment/locale/ky.js","./node_modules/moment/locale/lb.js","./node_modules/moment/locale/lo.js","./node_modules/moment/locale/lt.js","./node_modules/moment/locale/lv.js","./node_modules/moment/locale/me.js","./node_modules/moment/locale/mi.js","./node_modules/moment/locale/mk.js","./node_modules/moment/locale/ml.js","./node_modules/moment/locale/mn.js","./node_modules/moment/locale/mr.js","./node_modules/moment/locale/ms-my.js","./node_modules/moment/locale/ms.js","./node_modules/moment/locale/mt.js","./node_modules/moment/locale/my.js","./node_modules/moment/locale/nb.js","./node_modules/moment/locale/ne.js","./node_modules/moment/locale/nl-be.js","./node_modules/moment/locale/nl.js","./node_modules/moment/locale/nn.js","./node_modules/moment/locale/oc-lnc.js","./node_modules/moment/locale/pa-in.js","./node_modules/moment/locale/pl.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/locale/pt.js","./node_modules/moment/locale/ro.js","./node_modules/moment/locale/ru.js","./node_modules/moment/locale/sd.js","./node_modules/moment/locale/se.js","./node_modules/moment/locale/si.js","./node_modules/moment/locale/sk.js","./node_modules/moment/locale/sl.js","./node_modules/moment/locale/sq.js","./node_modules/moment/locale/sr-cyrl.js","./node_modules/moment/locale/sr.js","./node_modules/moment/locale/ss.js","./node_modules/moment/locale/sv.js","./node_modules/moment/locale/sw.js","./node_modules/moment/locale/ta.js","./node_modules/moment/locale/te.js","./node_modules/moment/locale/tet.js","./node_modules/moment/locale/tg.js","./node_modules/moment/locale/th.js","./node_modules/moment/locale/tk.js","./node_modules/moment/locale/tl-ph.js","./node_modules/moment/locale/tlh.js","./node_modules/moment/locale/tr.js","./node_modules/moment/locale/tzl.js","./node_modules/moment/locale/tzm-latn.js","./node_modules/moment/locale/tzm.js","./node_modules/moment/locale/ug-cn.js","./node_modules/moment/locale/uk.js","./node_modules/moment/locale/ur.js","./node_modules/moment/locale/uz-latn.js","./node_modules/moment/locale/uz.js","./node_modules/moment/locale/vi.js","./node_modules/moment/locale/x-pseudo.js","./node_modules/moment/locale/yo.js","./node_modules/moment/locale/zh-cn.js","./node_modules/moment/locale/zh-hk.js","./node_modules/moment/locale/zh-mo.js","./node_modules/moment/locale/zh-tw.js","./node_modules/moment/moment.js","./node_modules/ng-click-outside/lib_esmodule/click-outside.directive.js","./node_modules/ng-click-outside/lib_esmodule/click-outside.module.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/observable/zip.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/lodash-es/isObject.js","./node_modules/lodash-es/_freeGlobal.js","./node_modules/lodash-es/_root.js","./node_modules/lodash-es/now.js","./node_modules/lodash-es/_trimmedEndIndex.js","./node_modules/lodash-es/_baseTrim.js","./node_modules/lodash-es/_Symbol.js","./node_modules/lodash-es/_getRawTag.js","./node_modules/lodash-es/_objectToString.js","./node_modules/lodash-es/_baseGetTag.js","./node_modules/lodash-es/toNumber.js","./node_modules/lodash-es/isSymbol.js","./node_modules/lodash-es/isObjectLike.js","./node_modules/lodash-es/debounce.js","./node_modules/simplebar-core/dist/index.mjs","./node_modules/lodash-es/throttle.js","./node_modules/simplebar-angular/fesm2015/simplebar-angular.js","./node_modules/sweetalert2/dist/sweetalert2.all.js","./node_modules/moment/locale/ sync ^\\.\\/.*$","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/cdk/fesm2022/coercion.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/localize/fesm2022/localize.mjs","./node_modules/@angular/localize/fesm2022/init.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/observable/race.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs","./node_modules/rxjs/dist/esm/internal/operators/endWith.js","./node_modules/@ng-select/ng-select/fesm2022/ng-select-ng-select.mjs","./node_modules/@ngx-translate/core/dist/fesm2022/ngx-translate-core.mjs","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-color.mjs","./node_modules/@ctrl/tinycolor/dist/module/index.js","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-config.mjs","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-environments.mjs","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-logger.mjs","./node_modules/date-fns/esm/addMonths/index.js","./node_modules/date-fns/esm/isSameYear/index.js","./node_modules/date-fns/esm/isSameMonth/index.js","./node_modules/date-fns/esm/startOfDay/index.js","./node_modules/date-fns/esm/isSameDay/index.js","./node_modules/date-fns/esm/startOfHour/index.js","./node_modules/date-fns/esm/isSameHour/index.js","./node_modules/date-fns/esm/startOfMinute/index.js","./node_modules/date-fns/esm/isSameMinute/index.js","./node_modules/date-fns/esm/startOfSecond/index.js","./node_modules/date-fns/esm/isSameSecond/index.js","./node_modules/date-fns/esm/differenceInCalendarYears/index.js","./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","./node_modules/date-fns/esm/differenceInCalendarDays/index.js","./node_modules/date-fns/esm/differenceInMilliseconds/index.js","./node_modules/date-fns/esm/_lib/roundingMethods/index.js","./node_modules/date-fns/esm/differenceInHours/index.js","./node_modules/date-fns/esm/differenceInMinutes/index.js","./node_modules/date-fns/esm/differenceInSeconds/index.js","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-time.mjs","./node_modules/date-fns/esm/startOfMonth/index.js","./node_modules/date-fns/esm/setYear/index.js","./node_modules/date-fns/esm/addYears/index.js","./node_modules/date-fns/esm/setMonth/index.js","./node_modules/date-fns/esm/getDaysInMonth/index.js","./node_modules/date-fns/esm/setDay/index.js","./node_modules/date-fns/esm/addDays/index.js","./node_modules/date-fns/esm/isToday/index.js","./node_modules/date-fns/esm/isFirstDayOfMonth/index.js","./node_modules/date-fns/esm/isLastDayOfMonth/index.js","./node_modules/date-fns/esm/endOfDay/index.js","./node_modules/date-fns/esm/endOfMonth/index.js","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-util.mjs","./node_modules/date-fns/esm/startOfISOWeek/index.js","./node_modules/date-fns/esm/subMilliseconds/index.js","./node_modules/date-fns/esm/addMilliseconds/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","./node_modules/date-fns/esm/_lib/format/formatters/index.js","./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","./node_modules/date-fns/esm/_lib/protectedTokens/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","./node_modules/date-fns/esm/_lib/defaultLocale/index.js","./node_modules/date-fns/esm/locale/en-US/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","./node_modules/date-fns/esm/format/index.js","./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/date-fns/esm/_lib/assign/index.js","./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/createSuper.js","./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/date-fns/esm/parse/_lib/Setter.js","./node_modules/date-fns/esm/parse/_lib/Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","./node_modules/date-fns/esm/parse/_lib/constants.js","./node_modules/date-fns/esm/parse/_lib/utils.js","./node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","./node_modules/date-fns/esm/_lib/setUTCDay/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","./node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","./node_modules/date-fns/esm/parse/_lib/parsers/index.js","./node_modules/date-fns/esm/parse/index.js","./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-i18n.mjs","./node_modules/date-fns/esm/getISOWeek/index.js","./node_modules/date-fns/esm/startOfISOWeekYear/index.js","./node_modules/date-fns/esm/getISOWeekYear/index.js","./node_modules/ngx-lottie/fesm2020/ngx-lottie.mjs","./node_modules/rxjs/dist/esm/internal/operators/toArray.js","./node_modules/ngx-owl-carousel-o/fesm2022/ngx-owl-carousel-o.mjs","./node_modules/rxjs/dist/esm/internal/operators/reduce.js","./node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["import { IParticlesProps } from '@tsparticles/angular';\r\nimport { MoveDirection, OutMode } from '@tsparticles/engine';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { Observable } from 'rxjs';\r\nimport Swal, { SweetAlertIcon, SweetAlertOptions, SweetAlertResult } from 'sweetalert2';\r\n\r\nexport const EIDDESIGN = false;\r\n\r\nexport const bannerCarousel: OwlOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n center: false,\r\n touchDrag: true,\r\n pullDrag: true,\r\n dots: true,\r\n rtl: true,\r\n margin: 40,\r\n items: 3,\r\n autoWidth: true,\r\n navSpeed: 700,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 400: {\r\n items: 1\r\n },\r\n 740: {\r\n items: 2\r\n },\r\n 940: {\r\n items: 3\r\n }\r\n },\r\n nav: false\r\n}\r\n\r\nexport const projectName = {\r\n en: 'ILearn',\r\n ar: 'ILearn'\r\n};\r\n\r\n\r\n\r\nexport const ROLES = {\r\n STUDENT: 'STUDENT',\r\n TEACHER: 'TEACHER',\r\n PARENT: 'PARENT',\r\n ADMIN: 'ADMIN',\r\n}\r\n\r\nexport const logo = {\r\n light: '/assets/images/logo-light.png',\r\n dark: '/assets/images/logo-dark.png',\r\n light_sm: '/assets/images/logo-sm-light.svg',\r\n dark_sm: '/assets/images/logo-sm-dark.svg',\r\n\r\n}\r\n\r\n\r\n\r\nexport const GetTimeInString = (timeInMinutes: number): string => {\r\n if (timeInMinutes < 0) {\r\n return \"0 دقيقة\";\r\n }\r\n\r\n const hours = Math.floor(timeInMinutes / 60);\r\n const minutes = timeInMinutes % 60;\r\n\r\n let hoursString = '';\r\n let minutesString = '';\r\n\r\n // Handle hours string\r\n if (hours > 0) {\r\n if (hours === 1) {\r\n hoursString = 'ساعة واحدة';\r\n } else if (hours === 2) {\r\n hoursString = 'ساعتان';\r\n } else if (hours <= 10) {\r\n hoursString = `${hours} ساعات`;\r\n } else {\r\n hoursString = `${hours} ساعة`;\r\n }\r\n }\r\n\r\n // Handle minutes string\r\n if (minutes > 0) {\r\n if (minutes === 1) {\r\n minutesString = 'دقيقة واحدة';\r\n } else if (minutes === 2) {\r\n minutesString = 'دقيقتان';\r\n } else if (minutes <= 10) {\r\n minutesString = `${minutes} دقائق`;\r\n } else {\r\n minutesString = `${minutes} دقيقة`;\r\n }\r\n }\r\n\r\n // Combine hours and minutes\r\n if (hours > 0 && minutes > 0) {\r\n return `${hoursString} و ${minutesString}`;\r\n } else if (hours > 0) {\r\n return hoursString;\r\n } else if (minutes > 0) {\r\n return minutesString;\r\n } else {\r\n return '٠ دقيقة';\r\n }\r\n};\r\n\r\n\r\nexport function downloadData(data: BlobPart, contentDispositionHeader: string, contentType: string | null) {\r\n if (data && contentDispositionHeader && contentType) {\r\n const filenameRegex = /filename\\*=UTF-8''([^;]+)/;\r\n const matches = filenameRegex.exec(contentDispositionHeader);\r\n\r\n let filename = 'download.zip';\r\n if (matches !== null && matches[1]) {\r\n filename = decodeURIComponent(matches[1].replace(/['\"]/g, ''));\r\n }\r\n\r\n const blob = new Blob([data], { type: contentType || 'application/zip', endings: 'transparent' });\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(blob);\r\n link.download = filename;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n\r\n // clean up the URL and link element\r\n URL.revokeObjectURL(link.href);\r\n document.body.removeChild(link);\r\n }\r\n}\r\n\r\n\r\nexport function isSafeCoordinate(number: unknown): number | undefined {\r\n return number != '' && number != null && number != undefined ? +number : undefined\r\n}\r\nexport const responseErrors = {\r\n DuplicateName: 'إسم مكرر مسبقًا',\r\n Error: 'حدث خطأ',\r\n CompanyTypeNotEqualsProjectType: 'الشركة ونوع المشروع غير متطابقين',\r\n LOCKED: 'تم إيقاف حسابك مؤقتًا .. برجاء التواصل مع مدير النظام',\r\n 'The Name field is required.': 'يجب إدخــال الإسم',\r\n 'The projectCommand field is required.': 'بعض المدخلات الإجبارية غير موجودة',\r\n FieldRequired: 'برجاء ملء كل البيانات بشكل صحيح',\r\n InvalidCRN: 'رقم سجل تجاري غير صحيح',\r\n MaxFieldLength: 'عدد الحروف أكثر من المطلوب',\r\n MinFieldLength: 'عدد الحروف أقل من المطلوب',\r\n UserNotFound: 'اسم المستخدم غير موجود',\r\n InvalidLogin: 'اسم المستخدم او كلمة المرور خطأ ',\r\n DuplicateUser: 'المستخدم موجود من قبل',\r\n DuplicateEmail: 'تم تسجيل حساب بالفعل بهذا البريد الإلكتروني',\r\n DuplicatePhoneNumber: 'هناك حساب بالفعل يستخدم نفس رقم التليفون',\r\n NotFound: 'لا يوجد بيانات',\r\n CantDelete: 'لا يمكن الحــذف',\r\n DuplicateCode: 'الكود مُستخدم من قبــل',\r\n UserAlreadyLoggedIn: 'أنت بالفعل مسجل دخولك',\r\n InvalidEmailAddress: 'البريد الإلكتروني غير صحيح',\r\n InvalidPhoneNumber: 'رقم التليفون غير صحيح',\r\n Expired: 'انتهت صلاحية رمز التاكيد',\r\n CantLockYourself: 'لا يمكنك إيقاف حسابك',\r\n\r\n DuplicateCrn: 'رقم تجاري مكرر',\r\n\r\n InvalidUsername: 'اسم مستخدم غير مقبول',\r\n InvalidCrn: 'رقم تجاري غير صالح',\r\n InvalidPasswordRequirements: 'كلمة مرور غير صالحة',\r\n DuplicateIdNumber: 'Id مكرر',\r\n InvalidStartDate: 'تاريخ بداية غير صالح',\r\n InvalidEndDate: 'تاريخ نهاية غير صالح',\r\n InvalidDate: 'تاريخ غير صالح',\r\n ParentNotFound: 'حدث خطأ',\r\n ProjectNotFound: 'المشروع غير موجود',\r\n CantLockAdmin: 'لا تستطيع إيقاف حساب مدير النظام',\r\n ExceedValue: 'القيمة أكثر من المطلوب',\r\n CategoryNotFound: 'الفئة غير موجودة',\r\n FileNotFound: 'الملف غير موجود',\r\n BadFile: 'ملف غير صالح',\r\n AccessDenied: 'لا تمتلك صلاحية',\r\n LastValueIsBiggerThanCurrentValue: 'القيمة الأخيرة يجب أن تكون أكبر من القيمة الحالية',\r\n CantCreateUser: 'حدث خطأ في إنشاء مستخدم',\r\n TimeOut: 'انتهي الوقــت',\r\n UnAuthorize: 'غير مصرح بالتنفيذ'\r\n}\r\n\r\n\r\nexport const errorCallback = (err: any) => { SWAL('error', err?.errorCode) }\r\n\r\nexport const SWAL = (type: SweetAlertIcon, title: string, text?: string\r\n , confirmCallback?: Function,\r\n options?: SweetAlertOptions): Promise> | null => {\r\n if (title === 'NO-ERROR') {\r\n return null;\r\n }\r\n let errmsg = title ? responseErrors[title] || title : title;\r\n\r\n return Swal.fire({\r\n icon: type,\r\n titleText: errmsg || (type === 'error' ? 'حدث خطأ' : ''),\r\n text,\r\n confirmButtonColor: '#2BA18Cff',\r\n confirmButtonText: 'تمام',\r\n cancelButtonText: 'إلغاء',\r\n ...options,\r\n\r\n })\r\n}\r\nexport const SWALConfirmation = (\r\n type: SweetAlertIcon,\r\n title?: string,\r\n callableFunction?: Observable,\r\n resultText?: string,\r\n actionText?: string,\r\n\r\n): Promise> => {\r\n\r\n return Swal.fire({\r\n title: title,\r\n icon: type,\r\n showCancelButton: true,\r\n confirmButtonText: actionText || 'نعـم',\r\n cancelButtonText: 'إغلاق',\r\n showLoaderOnConfirm: true,\r\n confirmButtonColor: '#f46a6a',\r\n preConfirm: isConfirmed => {\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n if (isConfirmed) {\r\n callableFunction?.subscribe({\r\n next: (res) => {\r\n SWAL('success', resultText || 'تم التنفيذ');\r\n\r\n resolve(true)\r\n\r\n },\r\n error: (res) => {\r\n SWAL('error', res);\r\n reject(false)\r\n }\r\n })\r\n }\r\n });\r\n },\r\n allowOutsideClick: true\r\n })\r\n\r\n}\r\n\r\n\r\nexport function SWAL_Celebrate(title?: string | null, text?: string | null, iconHtml?: string | null, backdrop?: string | null, confirmButtonText?: string) {\r\n return Swal.fire({\r\n title: title || \"مبروووك\",\r\n text: text || \"\",\r\n icon: 'success',\r\n iconHtml: iconHtml || '',\r\n backdrop: backdrop || `\r\n rgba(0,0,0,0.2)\r\n url(\"/assets/images/celebration.gif\")\r\n center top\r\n repeat\r\n `,\r\n confirmButtonText: confirmButtonText || 'تمام'\r\n });\r\n}\r\n\r\n\r\nexport const userNamePattern = '^(?=[a-zA-Z0-9._]{3,20}$)(?!.*[_.]{2})[^_.].*[^_.]$'\r\nexport const numberMoreThanZeroPattern = /^[1-9]\\d*(\\.\\d+)?$/\r\nexport const mustNumberPattern = /^-?\\d*(\\.\\d+)?$/\r\n\r\n\r\nexport const particlesOptions: IParticlesProps = {\r\n background: {\r\n color: {\r\n value: \"transparent\",\r\n },\r\n },\r\n fpsLimit: 120,\r\n styles: [\r\n ''\r\n ],\r\n interactivity: {\r\n events: {\r\n\r\n onClick: {\r\n enable: true,\r\n mode: \"push\",\r\n },\r\n onHover: {\r\n enable: false,\r\n mode: 'repulse',\r\n },\r\n resize: {\r\n enable: false,\r\n },\r\n },\r\n modes: {\r\n push: {\r\n quantity: 1,\r\n },\r\n repulse: {\r\n distance: 300,\r\n duration: 0.7,\r\n },\r\n },\r\n },\r\n particles: {\r\n color: {\r\n value: [\"#ffaf00\", \"#FF6056\",],\r\n },\r\n move: {\r\n direction: MoveDirection.none,\r\n enable: true,\r\n outModes: {\r\n default: OutMode.out,\r\n },\r\n random: true,\r\n \"speed\": {\r\n \"min\": 1,\r\n \"max\": 2\r\n },\r\n straight: false,\r\n\r\n },\r\n number: {\r\n density: {\r\n enable: false,\r\n },\r\n value: 10,\r\n limit: {\r\n mode: \"delete\",\r\n value: 20,\r\n\r\n }\r\n },\r\n opacity: {\r\n value: 1,\r\n },\r\n shape: {\r\n type: [\"image\"],\r\n options: {\r\n image: [\r\n {\r\n src: '/assets/images/icons_edu/(1).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(2).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(3).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(3).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(3).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(3).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(4).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(5).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(6).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(7).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(8).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(9).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(10).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(11).svg',\r\n },\r\n {\r\n src: '/assets/images/icons_edu/(12).svg',\r\n },\r\n ]\r\n },\r\n },\r\n size: {\r\n value: { min: 15, max: 30 },\r\n },\r\n },\r\n detectRetina: false,\r\n fullScreen: true,\r\n zLayers: 1\r\n};\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Global configuration\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiConfiguration {\r\n rootUrl: string = '';\r\n}\r\n\r\n/**\r\n * Parameters for `BEApiModule.forRoot()`\r\n */\r\nexport interface ApiConfigurationParams {\r\n rootUrl?: string;\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ApiConfiguration } from './api-configuration';\r\n\r\n/**\r\n * Base class for services\r\n */\r\n@Injectable()\r\nexport class BaseService {\r\n constructor(\r\n protected config: ApiConfiguration,\r\n protected http: HttpClient\r\n ) {\r\n }\r\n\r\n private _rootUrl?: string;\r\n\r\n /**\r\n * Returns the root url for all operations in this service. If not set directly in this\r\n * service, will fallback to `ApiConfiguration.rootUrl`.\r\n */\r\n get rootUrl(): string {\r\n return this._rootUrl || this.config.rootUrl;\r\n }\r\n\r\n /**\r\n * Sets the root URL for API operations in this service.\r\n */\r\n set rootUrl(rootUrl: string) {\r\n this._rootUrl = rootUrl;\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpRequest, HttpParameterCodec, HttpParams, HttpHeaders, HttpContext } from '@angular/common/http';\r\n\r\n/**\r\n * Custom parameter codec to correctly handle the plus sign in parameter\r\n * values. See https://github.com/angular/angular/issues/18261\r\n */\r\nclass ParameterCodec implements HttpParameterCodec {\r\n encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n\r\n encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n\r\n decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n\r\n decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}\r\nconst ParameterCodecInstance = new ParameterCodec();\r\n\r\n/**\r\n * Defines the options for appending a parameter\r\n */\r\ninterface ParameterOptions {\r\n style?: string;\r\n explode?: boolean;\r\n}\r\n\r\n/**\r\n * Base class for a parameter\r\n */\r\nabstract class Parameter {\r\n constructor(public name: string, public value: any, public options: ParameterOptions, defaultStyle: string, defaultExplode: boolean) {\r\n this.options = options || {};\r\n if (this.options.style === null || this.options.style === undefined) {\r\n this.options.style = defaultStyle;\r\n }\r\n if (this.options.explode === null || this.options.explode === undefined) {\r\n this.options.explode = defaultExplode;\r\n }\r\n }\r\n\r\n serializeValue(value: any, separator = ','): string {\r\n if (value === null || value === undefined) {\r\n return '';\r\n } else if (value instanceof Array) {\r\n return value.map(v => this.serializeValue(v).split(separator).join(encodeURIComponent(separator))).join(separator);\r\n } else if (typeof value === 'object') {\r\n const array: string[] = [];\r\n for (const key of Object.keys(value)) {\r\n let propVal = value[key];\r\n if (propVal !== null && propVal !== undefined) {\r\n propVal = this.serializeValue(propVal).split(separator).join(encodeURIComponent(separator));\r\n if (this.options.explode) {\r\n array.push(`${key}=${propVal}`);\r\n } else {\r\n array.push(key);\r\n array.push(propVal);\r\n }\r\n }\r\n }\r\n return array.join(separator);\r\n } else {\r\n return String(value);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A parameter in the operation path\r\n */\r\nclass PathParameter extends Parameter {\r\n constructor(name: string, value: any, options: ParameterOptions) {\r\n super(name, value, options, 'simple', false);\r\n }\r\n\r\n append(path: string): string {\r\n let value = this.value;\r\n if (value === null || value === undefined) {\r\n value = '';\r\n }\r\n let prefix = this.options.style === 'label' ? '.' : '';\r\n let separator = this.options.explode ? prefix === '' ? ',' : prefix : ',';\r\n let alreadySerialized = false;\r\n if (this.options.style === 'matrix') {\r\n // The parameter name is just used as prefix, except in some cases...\r\n prefix = `;${this.name}=`;\r\n if (this.options.explode && typeof value === 'object') {\r\n prefix = ';';\r\n if (value instanceof Array) {\r\n // For arrays we have to repeat the name for each element\r\n value = value.map(v => `${this.name}=${this.serializeValue(v, ';')}`);\r\n value = value.join(';');\r\n alreadySerialized = true;\r\n } else {\r\n // For objects we have to put each the key / value pairs\r\n value = this.serializeValue(value, ';');\r\n alreadySerialized = true\r\n }\r\n }\r\n }\r\n value = prefix + (alreadySerialized ? value : this.serializeValue(value, separator));\r\n // Replace both the plain variable and the corresponding variant taking in the prefix and explode into account\r\n path = path.replace(`{${this.name}}`, value);\r\n path = path.replace(`{${prefix}${this.name}${this.options.explode ? '*' : ''}}`, value);\r\n return path;\r\n }\r\n\r\n // @ts-ignore\r\n serializeValue(value: any, separator = ','): string {\r\n var result = typeof value === 'string' ? encodeURIComponent(value) : super.serializeValue(value, separator);\r\n result = result.replace(/%3D/g, '=');\r\n result = result.replace(/%3B/g, ';');\r\n result = result.replace(/%2C/g, ',');\r\n return result;\r\n }\r\n}\r\n\r\n/**\r\n * A parameter in the query\r\n */\r\nclass QueryParameter extends Parameter {\r\n constructor(name: string, value: any, options: ParameterOptions) {\r\n super(name, value, options, 'form', true);\r\n }\r\n\r\n append(params: HttpParams): HttpParams {\r\n if (this.value instanceof Array) {\r\n // Array serialization\r\n if (this.options.explode) {\r\n for (const v of this.value) {\r\n params = params.append(this.name, this.serializeValue(v));\r\n }\r\n } else {\r\n const separator = this.options.style === 'spaceDelimited'\r\n ? ' ' : this.options.style === 'pipeDelimited'\r\n ? '|' : ',';\r\n return params.append(this.name, this.serializeValue(this.value, separator));\r\n }\r\n } else if (this.value !== null && typeof this.value === 'object') {\r\n // Object serialization\r\n if (this.options.style === 'deepObject') {\r\n // Append a parameter for each key, in the form `name[key]`\r\n for (const key of Object.keys(this.value)) {\r\n const propVal = this.value[key];\r\n if (propVal !== null && propVal !== undefined) {\r\n params = params.append(`${this.name}[${key}]`, this.serializeValue(propVal));\r\n }\r\n }\r\n } else if (this.options.explode) {\r\n // Append a parameter for each key without using the parameter name\r\n for (const key of Object.keys(this.value)) {\r\n const propVal = this.value[key];\r\n if (propVal !== null && propVal !== undefined) {\r\n params = params.append(key, this.serializeValue(propVal));\r\n }\r\n }\r\n } else {\r\n // Append a single parameter whose values are a comma-separated list of key,value,key,value...\r\n const array: any[] = [];\r\n for (const key of Object.keys(this.value)) {\r\n const propVal = this.value[key];\r\n if (propVal !== null && propVal !== undefined) {\r\n array.push(key);\r\n array.push(propVal);\r\n }\r\n }\r\n params = params.append(this.name, this.serializeValue(array));\r\n }\r\n } else if (this.value !== null && this.value !== undefined) {\r\n // Plain value\r\n params = params.append(this.name, this.serializeValue(this.value));\r\n }\r\n return params;\r\n }\r\n}\r\n\r\n/**\r\n * A parameter in the HTTP request header\r\n */\r\nclass HeaderParameter extends Parameter {\r\n constructor(name: string, value: any, options: ParameterOptions) {\r\n super(name, value, options, 'simple', false);\r\n }\r\n\r\n append(headers: HttpHeaders): HttpHeaders {\r\n if (this.value !== null && this.value !== undefined) {\r\n if (this.value instanceof Array) {\r\n for (const v of this.value) {\r\n headers = headers.append(this.name, this.serializeValue(v));\r\n }\r\n } else {\r\n headers = headers.append(this.name, this.serializeValue(this.value));\r\n }\r\n }\r\n return headers;\r\n }\r\n}\r\n\r\n/**\r\n * Helper to build http requests from parameters\r\n */\r\nexport class RequestBuilder {\r\n\r\n private _path = new Map();\r\n private _query = new Map();\r\n private _header = new Map();\r\n _bodyContent: any | null;\r\n _bodyContentType?: string;\r\n\r\n constructor(\r\n public rootUrl: string,\r\n public operationPath: string,\r\n public method: string) {\r\n }\r\n\r\n /**\r\n * Sets a path parameter\r\n */\r\n path(name: string, value: any, options?: ParameterOptions): void {\r\n this._path.set(name, new PathParameter(name, value, options || {}));\r\n }\r\n\r\n /**\r\n * Sets a query parameter\r\n */\r\n query(name: string, value: any, options?: ParameterOptions): void {\r\n this._query.set(name, new QueryParameter(name, value, options || {}));\r\n }\r\n\r\n /**\r\n * Sets a header parameter\r\n */\r\n header(name: string, value: any, options?: ParameterOptions): void {\r\n this._header.set(name, new HeaderParameter(name, value, options || {}));\r\n }\r\n\r\n /**\r\n * Sets the body content, along with the content type\r\n */\r\n body(value: any, contentType = 'application/json'): void {\r\n if (value instanceof Blob) {\r\n this._bodyContentType = value.type;\r\n } else {\r\n this._bodyContentType = contentType;\r\n }\r\n if (this._bodyContentType === 'application/x-www-form-urlencoded' && value !== null && typeof value === 'object') {\r\n // Handle URL-encoded data\r\n const pairs: Array<[string, string]> = [];\r\n for (const key of Object.keys(value)) {\r\n let val = value[key];\r\n if (!(val instanceof Array)) {\r\n val = [val];\r\n }\r\n for (const v of val) {\r\n const formValue = this.formDataValue(v);\r\n if (formValue !== null) {\r\n pairs.push([key, formValue]);\r\n }\r\n }\r\n }\r\n this._bodyContent = pairs.map(p => `${encodeURIComponent(p[0])}=${encodeURIComponent(p[1])}`).join('&');\r\n } else if (this._bodyContentType === 'multipart/form-data') {\r\n // Handle multipart form data\r\n const formData = new FormData();\r\n if (value !== null && value !== undefined) {\r\n for (const key of Object.keys(value)) {\r\n const val = value[key];\r\n if (val instanceof Array) {\r\n this.fromDataObjectToFormData(key, val, formData);\r\n } else {\r\n const toAppend = this.formDataValue(val);\r\n if (toAppend !== null) {\r\n formData.set(key, toAppend);\r\n }\r\n }\r\n }\r\n }\r\n this._bodyContent = formData;\r\n } else {\r\n // The body is the plain content\r\n this._bodyContent = value;\r\n }\r\n }\r\n\r\n private formDataValue(value: any): any {\r\n if (value === null || value === undefined) {\r\n return null;\r\n } \r\n if (value instanceof Blob) {\r\n return value;\r\n }\r\n if (value instanceof Date) {\r\n return (value as Date)?.toISOString();\r\n }\r\n if (value instanceof String) {\r\n return value;\r\n }\r\n if (typeof value === 'object') {\r\n return new Blob([JSON.stringify(value)], {type: 'application/json'})\r\n }\r\n return String(value);\r\n }\r\n\r\n private fromDataObjectToFormData(parentKey: string, arr: any[], formData?: FormData): void {\r\n if (arr === null || arr === undefined) {\r\n return;\r\n }\r\n\r\n arr.forEach((arrItem, index) => {\r\n if (arrItem instanceof Object) {\r\n Object.entries(arrItem).forEach(([key, val]) => {\r\n if (val instanceof Object) {\r\n const toAppend = this.formDataValue(val);\r\n if (toAppend !== null) {\r\n formData?.append(`${parentKey}[${index}]`, toAppend);\r\n }\r\n } else {\r\n if (val) {\r\n formData?.append(`${parentKey}[${index}].${key}`, val as string);\r\n }\r\n }\r\n })\r\n }else{\r\n formData?.append(`${parentKey}[${index}]`, arrItem as string);\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Builds the request with the current set parameters\r\n */\r\n build(options?: {\r\n /** Which content types to accept */\r\n accept?: string;\r\n\r\n /** The expected response type */\r\n responseType?: 'json' | 'text' | 'blob' | 'arraybuffer';\r\n\r\n /** Whether to report progress on uploads / downloads */\r\n reportProgress?: boolean;\r\n\r\n /** Allow passing HttpContext for HttpClient */\r\n context?: HttpContext;\r\n }): HttpRequest {\r\n\r\n options = options || {};\r\n\r\n // Path parameters\r\n let path = this.operationPath;\r\n for (const pathParam of this._path.values()) {\r\n path = pathParam.append(path);\r\n }\r\n const url = this.rootUrl + path;\r\n\r\n // Query parameters\r\n let httpParams = new HttpParams({\r\n encoder: ParameterCodecInstance\r\n });\r\n for (const queryParam of this._query.values()) {\r\n httpParams = queryParam.append(httpParams);\r\n }\r\n\r\n // Header parameters\r\n let httpHeaders = new HttpHeaders();\r\n if (options.accept) {\r\n httpHeaders = httpHeaders.append('Accept', options.accept);\r\n }\r\n for (const headerParam of this._header.values()) {\r\n httpHeaders = headerParam.append(httpHeaders);\r\n }\r\n\r\n // Request content headers\r\n if (this._bodyContentType && !(this._bodyContent instanceof FormData)) {\r\n httpHeaders = httpHeaders.set('Content-Type', this._bodyContentType);\r\n }\r\n\r\n // Perform the request\r\n return new HttpRequest(this.method.toUpperCase(), url, this._bodyContent, {\r\n params: httpParams,\r\n headers: httpHeaders,\r\n responseType: options.responseType,\r\n reportProgress: options.reportProgress,\r\n context: options.context\r\n });\r\n }\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\nimport { RegisterDto } from '../../models/register-dto';\r\n\r\nexport interface ApiAccountAddUserPost$Params {\r\n body?: RegisterDto\r\n}\r\n\r\nexport function apiAccountAddUserPost(http: HttpClient, rootUrl: string, params?: ApiAccountAddUserPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountAddUserPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountAddUserPost.PATH = '/api/Account/AddUser';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\nimport { RegisterDto } from '../../models/register-dto';\r\n\r\nexport interface ApiAccountAddUserPost$Plain$Params {\r\n body?: RegisterDto\r\n}\r\n\r\nexport function apiAccountAddUserPost$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountAddUserPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountAddUserPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountAddUserPost$Plain.PATH = '/api/Account/AddUser';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiAccountChangePasswordPost$Params {\r\n currentPassword?: string;\r\n newPassword?: string;\r\n}\r\n\r\nexport function apiAccountChangePasswordPost(http: HttpClient, rootUrl: string, params?: ApiAccountChangePasswordPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountChangePasswordPost.PATH, 'post');\r\n if (params) {\r\n rb.query('currentPassword', params.currentPassword, {});\r\n rb.query('newPassword', params.newPassword, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: String((r as HttpResponse).body) === 'true' }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountChangePasswordPost.PATH = '/api/Account/ChangePassword';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiAccountChangePasswordPost$Plain$Params {\r\n currentPassword?: string;\r\n newPassword?: string;\r\n}\r\n\r\nexport function apiAccountChangePasswordPost$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountChangePasswordPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountChangePasswordPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.query('currentPassword', params.currentPassword, {});\r\n rb.query('newPassword', params.newPassword, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: String((r as HttpResponse).body) === 'true' }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountChangePasswordPost$Plain.PATH = '/api/Account/ChangePassword';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiAccountDeleteUsersDelete$Params {\r\n userId?: string;\r\n}\r\n\r\nexport function apiAccountDeleteUsersDelete(http: HttpClient, rootUrl: string, params?: ApiAccountDeleteUsersDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountDeleteUsersDelete.PATH, 'delete');\r\n if (params) {\r\n rb.query('userId', params.userId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountDeleteUsersDelete.PATH = '/api/Account/DeleteUsers';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiAccountDeleteUsersDelete$Plain$Params {\r\n userId?: string;\r\n}\r\n\r\nexport function apiAccountDeleteUsersDelete$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountDeleteUsersDelete$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountDeleteUsersDelete$Plain.PATH, 'delete');\r\n if (params) {\r\n rb.query('userId', params.userId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountDeleteUsersDelete$Plain.PATH = '/api/Account/DeleteUsers';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiAccountGet$Params {\r\n}\r\n\r\nexport function apiAccountGet(http: HttpClient, rootUrl: string, params?: ApiAccountGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountGet.PATH = '/api/Account';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiAccountGet$Plain$Params {\r\n}\r\n\r\nexport function apiAccountGet$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountGet$Plain.PATH = '/api/Account';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiAccountGetUserByIdGet$Params {\r\n userId?: string;\r\n}\r\n\r\nexport function apiAccountGetUserByIdGet(http: HttpClient, rootUrl: string, params?: ApiAccountGetUserByIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountGetUserByIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('userId', params.userId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountGetUserByIdGet.PATH = '/api/Account/GetUserById';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiAccountGetUserByIdGet$Plain$Params {\r\n userId?: string;\r\n}\r\n\r\nexport function apiAccountGetUserByIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountGetUserByIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountGetUserByIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('userId', params.userId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountGetUserByIdGet$Plain.PATH = '/api/Account/GetUserById';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDtoIEnumerablePagination } from '../../models/user-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiAccountGetUsersGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiAccountGetUsersGet(http: HttpClient, rootUrl: string, params?: ApiAccountGetUsersGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountGetUsersGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountGetUsersGet.PATH = '/api/Account/GetUsers';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDtoIEnumerablePagination } from '../../models/user-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiAccountGetUsersGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiAccountGetUsersGet$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountGetUsersGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountGetUsersGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountGetUsersGet$Plain.PATH = '/api/Account/GetUsers';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { LoginDto } from '../../models/login-dto';\r\nimport { LoginResponseDto } from '../../models/login-response-dto';\r\n\r\nexport interface ApiAccountLoginPost$Params {\r\n body?: LoginDto\r\n}\r\n\r\nexport function apiAccountLoginPost(http: HttpClient, rootUrl: string, params?: ApiAccountLoginPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountLoginPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountLoginPost.PATH = '/api/Account/Login';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { LoginDto } from '../../models/login-dto';\r\nimport { LoginResponseDto } from '../../models/login-response-dto';\r\n\r\nexport interface ApiAccountLoginPost$Plain$Params {\r\n body?: LoginDto\r\n}\r\n\r\nexport function apiAccountLoginPost$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountLoginPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountLoginPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountLoginPost$Plain.PATH = '/api/Account/Login';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\n\r\nexport interface ApiAccountRegisterParentPost$Params {\r\n body?: {\r\n'UserName'?: string;\r\n'Name'?: string;\r\n'Password'?: string;\r\n'PhoneNunber'?: string;\r\n'Roles'?: Array;\r\n}\r\n}\r\n\r\nexport function apiAccountRegisterParentPost(http: HttpClient, rootUrl: string, params?: ApiAccountRegisterParentPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountRegisterParentPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountRegisterParentPost.PATH = '/api/Account/RegisterParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\n\r\nexport interface ApiAccountRegisterParentPost$Plain$Params {\r\n body?: {\r\n'UserName'?: string;\r\n'Name'?: string;\r\n'Password'?: string;\r\n'PhoneNunber'?: string;\r\n'Roles'?: Array;\r\n}\r\n}\r\n\r\nexport function apiAccountRegisterParentPost$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountRegisterParentPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountRegisterParentPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountRegisterParentPost$Plain.PATH = '/api/Account/RegisterParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\nimport { StudentType } from '../../models/student-type';\r\n\r\nexport interface ApiAccountRegisterStudentPost$Params {\r\n body?: {\r\n'Name'?: string;\r\n'Password'?: string;\r\n'PhoneNumber'?: string;\r\n'Status'?: string;\r\n'Img'?: Blob;\r\n'Type'?: StudentType;\r\n'joinDate'?: string;\r\n'ParentPhone'?: string;\r\n'ParentPhone2'?: string;\r\n'LevelYearsId'?: number;\r\n}\r\n}\r\n\r\nexport function apiAccountRegisterStudentPost(http: HttpClient, rootUrl: string, params?: ApiAccountRegisterStudentPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountRegisterStudentPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountRegisterStudentPost.PATH = '/api/Account/RegisterStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\nimport { StudentType } from '../../models/student-type';\r\n\r\nexport interface ApiAccountRegisterStudentPost$Plain$Params {\r\n body?: {\r\n'Name'?: string;\r\n'Password'?: string;\r\n'PhoneNumber'?: string;\r\n'Status'?: string;\r\n'Img'?: Blob;\r\n'Type'?: StudentType;\r\n'joinDate'?: string;\r\n'ParentPhone'?: string;\r\n'ParentPhone2'?: string;\r\n'LevelYearsId'?: number;\r\n}\r\n}\r\n\r\nexport function apiAccountRegisterStudentPost$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountRegisterStudentPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountRegisterStudentPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountRegisterStudentPost$Plain.PATH = '/api/Account/RegisterStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiAccountUpdatePasswordPost$Params {\r\n userId?: string;\r\n newPassword?: string;\r\n}\r\n\r\nexport function apiAccountUpdatePasswordPost(http: HttpClient, rootUrl: string, params?: ApiAccountUpdatePasswordPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountUpdatePasswordPost.PATH, 'post');\r\n if (params) {\r\n rb.query('userId', params.userId, {});\r\n rb.query('newPassword', params.newPassword, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: String((r as HttpResponse).body) === 'true' }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountUpdatePasswordPost.PATH = '/api/Account/UpdatePassword';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiAccountUpdatePasswordPost$Plain$Params {\r\n userId?: string;\r\n newPassword?: string;\r\n}\r\n\r\nexport function apiAccountUpdatePasswordPost$Plain(http: HttpClient, rootUrl: string, params?: ApiAccountUpdatePasswordPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiAccountUpdatePasswordPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.query('userId', params.userId, {});\r\n rb.query('newPassword', params.newPassword, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: String((r as HttpResponse).body) === 'true' }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiAccountUpdatePasswordPost$Plain.PATH = '/api/Account/UpdatePassword';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiAccountAddUserPost } from '../fn/account/api-account-add-user-post';\r\nimport { ApiAccountAddUserPost$Params } from '../fn/account/api-account-add-user-post';\r\nimport { apiAccountAddUserPost$Plain } from '../fn/account/api-account-add-user-post-plain';\r\nimport { ApiAccountAddUserPost$Plain$Params } from '../fn/account/api-account-add-user-post-plain';\r\nimport { apiAccountChangePasswordPost } from '../fn/account/api-account-change-password-post';\r\nimport { ApiAccountChangePasswordPost$Params } from '../fn/account/api-account-change-password-post';\r\nimport { apiAccountChangePasswordPost$Plain } from '../fn/account/api-account-change-password-post-plain';\r\nimport { ApiAccountChangePasswordPost$Plain$Params } from '../fn/account/api-account-change-password-post-plain';\r\nimport { apiAccountDeleteUsersDelete } from '../fn/account/api-account-delete-users-delete';\r\nimport { ApiAccountDeleteUsersDelete$Params } from '../fn/account/api-account-delete-users-delete';\r\nimport { apiAccountDeleteUsersDelete$Plain } from '../fn/account/api-account-delete-users-delete-plain';\r\nimport { ApiAccountDeleteUsersDelete$Plain$Params } from '../fn/account/api-account-delete-users-delete-plain';\r\nimport { apiAccountGet } from '../fn/account/api-account-get';\r\nimport { ApiAccountGet$Params } from '../fn/account/api-account-get';\r\nimport { apiAccountGet$Plain } from '../fn/account/api-account-get-plain';\r\nimport { ApiAccountGet$Plain$Params } from '../fn/account/api-account-get-plain';\r\nimport { apiAccountGetUserByIdGet } from '../fn/account/api-account-get-user-by-id-get';\r\nimport { ApiAccountGetUserByIdGet$Params } from '../fn/account/api-account-get-user-by-id-get';\r\nimport { apiAccountGetUserByIdGet$Plain } from '../fn/account/api-account-get-user-by-id-get-plain';\r\nimport { ApiAccountGetUserByIdGet$Plain$Params } from '../fn/account/api-account-get-user-by-id-get-plain';\r\nimport { apiAccountGetUsersGet } from '../fn/account/api-account-get-users-get';\r\nimport { ApiAccountGetUsersGet$Params } from '../fn/account/api-account-get-users-get';\r\nimport { apiAccountGetUsersGet$Plain } from '../fn/account/api-account-get-users-get-plain';\r\nimport { ApiAccountGetUsersGet$Plain$Params } from '../fn/account/api-account-get-users-get-plain';\r\nimport { apiAccountLoginPost } from '../fn/account/api-account-login-post';\r\nimport { ApiAccountLoginPost$Params } from '../fn/account/api-account-login-post';\r\nimport { apiAccountLoginPost$Plain } from '../fn/account/api-account-login-post-plain';\r\nimport { ApiAccountLoginPost$Plain$Params } from '../fn/account/api-account-login-post-plain';\r\nimport { apiAccountRegisterParentPost } from '../fn/account/api-account-register-parent-post';\r\nimport { ApiAccountRegisterParentPost$Params } from '../fn/account/api-account-register-parent-post';\r\nimport { apiAccountRegisterParentPost$Plain } from '../fn/account/api-account-register-parent-post-plain';\r\nimport { ApiAccountRegisterParentPost$Plain$Params } from '../fn/account/api-account-register-parent-post-plain';\r\nimport { apiAccountRegisterStudentPost } from '../fn/account/api-account-register-student-post';\r\nimport { ApiAccountRegisterStudentPost$Params } from '../fn/account/api-account-register-student-post';\r\nimport { apiAccountRegisterStudentPost$Plain } from '../fn/account/api-account-register-student-post-plain';\r\nimport { ApiAccountRegisterStudentPost$Plain$Params } from '../fn/account/api-account-register-student-post-plain';\r\nimport { apiAccountUpdatePasswordPost } from '../fn/account/api-account-update-password-post';\r\nimport { ApiAccountUpdatePasswordPost$Params } from '../fn/account/api-account-update-password-post';\r\nimport { apiAccountUpdatePasswordPost$Plain } from '../fn/account/api-account-update-password-post-plain';\r\nimport { ApiAccountUpdatePasswordPost$Plain$Params } from '../fn/account/api-account-update-password-post-plain';\r\nimport { ApplicationUser } from '../models/application-user';\r\nimport { LoginResponseDto } from '../models/login-response-dto';\r\nimport { UserDto } from '../models/user-dto';\r\nimport { UserDtoIEnumerablePagination } from '../models/user-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AccountService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiAccountLoginPost()` */\r\n static readonly ApiAccountLoginPostPath = '/api/Account/Login';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountLoginPost$Plain()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountLoginPost$Plain$Response(params?: ApiAccountLoginPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountLoginPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountLoginPost$Plain$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountLoginPost$Plain(params?: ApiAccountLoginPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountLoginPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): LoginResponseDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountLoginPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountLoginPost$Response(params?: ApiAccountLoginPost$Params, context?: HttpContext): Observable> {\r\n return apiAccountLoginPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountLoginPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountLoginPost(params?: ApiAccountLoginPost$Params, context?: HttpContext): Observable {\r\n return this.apiAccountLoginPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): LoginResponseDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountAddUserPost()` */\r\n static readonly ApiAccountAddUserPostPath = '/api/Account/AddUser';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountAddUserPost$Plain()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountAddUserPost$Plain$Response(params?: ApiAccountAddUserPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountAddUserPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountAddUserPost$Plain$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountAddUserPost$Plain(params?: ApiAccountAddUserPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountAddUserPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountAddUserPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountAddUserPost$Response(params?: ApiAccountAddUserPost$Params, context?: HttpContext): Observable> {\r\n return apiAccountAddUserPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountAddUserPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiAccountAddUserPost(params?: ApiAccountAddUserPost$Params, context?: HttpContext): Observable {\r\n return this.apiAccountAddUserPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountGetUsersGet()` */\r\n static readonly ApiAccountGetUsersGetPath = '/api/Account/GetUsers';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountGetUsersGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUsersGet$Plain$Response(params?: ApiAccountGetUsersGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountGetUsersGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountGetUsersGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUsersGet$Plain(params?: ApiAccountGetUsersGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountGetUsersGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountGetUsersGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUsersGet$Response(params?: ApiAccountGetUsersGet$Params, context?: HttpContext): Observable> {\r\n return apiAccountGetUsersGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountGetUsersGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUsersGet(params?: ApiAccountGetUsersGet$Params, context?: HttpContext): Observable {\r\n return this.apiAccountGetUsersGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountGetUserByIdGet()` */\r\n static readonly ApiAccountGetUserByIdGetPath = '/api/Account/GetUserById';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountGetUserByIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUserByIdGet$Plain$Response(params?: ApiAccountGetUserByIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountGetUserByIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountGetUserByIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUserByIdGet$Plain(params?: ApiAccountGetUserByIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountGetUserByIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountGetUserByIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUserByIdGet$Response(params?: ApiAccountGetUserByIdGet$Params, context?: HttpContext): Observable> {\r\n return apiAccountGetUserByIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountGetUserByIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGetUserByIdGet(params?: ApiAccountGetUserByIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiAccountGetUserByIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountDeleteUsersDelete()` */\r\n static readonly ApiAccountDeleteUsersDeletePath = '/api/Account/DeleteUsers';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountDeleteUsersDelete$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountDeleteUsersDelete$Plain$Response(params?: ApiAccountDeleteUsersDelete$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountDeleteUsersDelete$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountDeleteUsersDelete$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountDeleteUsersDelete$Plain(params?: ApiAccountDeleteUsersDelete$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountDeleteUsersDelete$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountDeleteUsersDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountDeleteUsersDelete$Response(params?: ApiAccountDeleteUsersDelete$Params, context?: HttpContext): Observable> {\r\n return apiAccountDeleteUsersDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountDeleteUsersDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountDeleteUsersDelete(params?: ApiAccountDeleteUsersDelete$Params, context?: HttpContext): Observable {\r\n return this.apiAccountDeleteUsersDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountGet()` */\r\n static readonly ApiAccountGetPath = '/api/Account';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGet$Plain$Response(params?: ApiAccountGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGet$Plain(params?: ApiAccountGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGet$Response(params?: ApiAccountGet$Params, context?: HttpContext): Observable> {\r\n return apiAccountGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountGet(params?: ApiAccountGet$Params, context?: HttpContext): Observable {\r\n return this.apiAccountGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): UserDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountRegisterParentPost()` */\r\n static readonly ApiAccountRegisterParentPostPath = '/api/Account/RegisterParent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountRegisterParentPost$Plain()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterParentPost$Plain$Response(params?: ApiAccountRegisterParentPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountRegisterParentPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountRegisterParentPost$Plain$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterParentPost$Plain(params?: ApiAccountRegisterParentPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountRegisterParentPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountRegisterParentPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterParentPost$Response(params?: ApiAccountRegisterParentPost$Params, context?: HttpContext): Observable> {\r\n return apiAccountRegisterParentPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountRegisterParentPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterParentPost(params?: ApiAccountRegisterParentPost$Params, context?: HttpContext): Observable {\r\n return this.apiAccountRegisterParentPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountRegisterStudentPost()` */\r\n static readonly ApiAccountRegisterStudentPostPath = '/api/Account/RegisterStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountRegisterStudentPost$Plain()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterStudentPost$Plain$Response(params?: ApiAccountRegisterStudentPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountRegisterStudentPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountRegisterStudentPost$Plain$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterStudentPost$Plain(params?: ApiAccountRegisterStudentPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountRegisterStudentPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountRegisterStudentPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterStudentPost$Response(params?: ApiAccountRegisterStudentPost$Params, context?: HttpContext): Observable> {\r\n return apiAccountRegisterStudentPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountRegisterStudentPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiAccountRegisterStudentPost(params?: ApiAccountRegisterStudentPost$Params, context?: HttpContext): Observable {\r\n return this.apiAccountRegisterStudentPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountChangePasswordPost()` */\r\n static readonly ApiAccountChangePasswordPostPath = '/api/Account/ChangePassword';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountChangePasswordPost$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountChangePasswordPost$Plain$Response(params?: ApiAccountChangePasswordPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountChangePasswordPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountChangePasswordPost$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountChangePasswordPost$Plain(params?: ApiAccountChangePasswordPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountChangePasswordPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): boolean => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountChangePasswordPost()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountChangePasswordPost$Response(params?: ApiAccountChangePasswordPost$Params, context?: HttpContext): Observable> {\r\n return apiAccountChangePasswordPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountChangePasswordPost$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountChangePasswordPost(params?: ApiAccountChangePasswordPost$Params, context?: HttpContext): Observable {\r\n return this.apiAccountChangePasswordPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): boolean => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiAccountUpdatePasswordPost()` */\r\n static readonly ApiAccountUpdatePasswordPostPath = '/api/Account/UpdatePassword';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountUpdatePasswordPost$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountUpdatePasswordPost$Plain$Response(params?: ApiAccountUpdatePasswordPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiAccountUpdatePasswordPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountUpdatePasswordPost$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountUpdatePasswordPost$Plain(params?: ApiAccountUpdatePasswordPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiAccountUpdatePasswordPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): boolean => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiAccountUpdatePasswordPost()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountUpdatePasswordPost$Response(params?: ApiAccountUpdatePasswordPost$Params, context?: HttpContext): Observable> {\r\n return apiAccountUpdatePasswordPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiAccountUpdatePasswordPost$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiAccountUpdatePasswordPost(params?: ApiAccountUpdatePasswordPost$Params, context?: HttpContext): Observable {\r\n return this.apiAccountUpdatePasswordPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): boolean => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewActivityDtoIEnumerablePagination } from '../../models/view-activity-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiActivityGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiActivityGet(http: HttpClient, rootUrl: string, params?: ApiActivityGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityGet.PATH = '/api/Activity';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewActivityDtoIEnumerablePagination } from '../../models/view-activity-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiActivityGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiActivityGet$Plain(http: HttpClient, rootUrl: string, params?: ApiActivityGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityGet$Plain.PATH = '/api/Activity';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiActivityIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiActivityIdDelete(http: HttpClient, rootUrl: string, params: ApiActivityIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityIdDelete.PATH = '/api/Activity/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewActivityDto } from '../../models/view-activity-dto';\r\n\r\nexport interface ApiActivityIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiActivityIdGet(http: HttpClient, rootUrl: string, params: ApiActivityIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityIdGet.PATH = '/api/Activity/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewActivityDto } from '../../models/view-activity-dto';\r\n\r\nexport interface ApiActivityIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiActivityIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiActivityIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityIdGet$Plain.PATH = '/api/Activity/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiActivityIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Title'?: string;\r\n'Description'?: string;\r\n'Img'?: Blob;\r\n}\r\n}\r\n\r\nexport function apiActivityIdPut(http: HttpClient, rootUrl: string, params: ApiActivityIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityIdPut.PATH = '/api/Activity/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiActivityPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Title'?: string;\r\n'Description'?: string;\r\n'Img'?: Blob;\r\n}\r\n}\r\n\r\nexport function apiActivityPost(http: HttpClient, rootUrl: string, params?: ApiActivityPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiActivityPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiActivityPost.PATH = '/api/Activity';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiActivityGet } from '../fn/activity/api-activity-get';\r\nimport { ApiActivityGet$Params } from '../fn/activity/api-activity-get';\r\nimport { apiActivityGet$Plain } from '../fn/activity/api-activity-get-plain';\r\nimport { ApiActivityGet$Plain$Params } from '../fn/activity/api-activity-get-plain';\r\nimport { apiActivityIdDelete } from '../fn/activity/api-activity-id-delete';\r\nimport { ApiActivityIdDelete$Params } from '../fn/activity/api-activity-id-delete';\r\nimport { apiActivityIdGet } from '../fn/activity/api-activity-id-get';\r\nimport { ApiActivityIdGet$Params } from '../fn/activity/api-activity-id-get';\r\nimport { apiActivityIdGet$Plain } from '../fn/activity/api-activity-id-get-plain';\r\nimport { ApiActivityIdGet$Plain$Params } from '../fn/activity/api-activity-id-get-plain';\r\nimport { apiActivityIdPut } from '../fn/activity/api-activity-id-put';\r\nimport { ApiActivityIdPut$Params } from '../fn/activity/api-activity-id-put';\r\nimport { apiActivityPost } from '../fn/activity/api-activity-post';\r\nimport { ApiActivityPost$Params } from '../fn/activity/api-activity-post';\r\nimport { ViewActivityDto } from '../models/view-activity-dto';\r\nimport { ViewActivityDtoIEnumerablePagination } from '../models/view-activity-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ActivityService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiActivityGet()` */\r\n static readonly ApiActivityGetPath = '/api/Activity';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityGet$Plain$Response(params?: ApiActivityGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiActivityGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityGet$Plain(params?: ApiActivityGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiActivityGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewActivityDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityGet$Response(params?: ApiActivityGet$Params, context?: HttpContext): Observable> {\r\n return apiActivityGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityGet(params?: ApiActivityGet$Params, context?: HttpContext): Observable {\r\n return this.apiActivityGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewActivityDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiActivityPost()` */\r\n static readonly ApiActivityPostPath = '/api/Activity';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiActivityPost$Response(params?: ApiActivityPost$Params, context?: HttpContext): Observable> {\r\n return apiActivityPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiActivityPost(params?: ApiActivityPost$Params, context?: HttpContext): Observable {\r\n return this.apiActivityPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiActivityIdGet()` */\r\n static readonly ApiActivityIdGetPath = '/api/Activity/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityIdGet$Plain$Response(params: ApiActivityIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiActivityIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityIdGet$Plain(params: ApiActivityIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiActivityIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewActivityDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityIdGet$Response(params: ApiActivityIdGet$Params, context?: HttpContext): Observable> {\r\n return apiActivityIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityIdGet(params: ApiActivityIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiActivityIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewActivityDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiActivityIdPut()` */\r\n static readonly ApiActivityIdPutPath = '/api/Activity/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiActivityIdPut$Response(params: ApiActivityIdPut$Params, context?: HttpContext): Observable> {\r\n return apiActivityIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiActivityIdPut(params: ApiActivityIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiActivityIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiActivityIdDelete()` */\r\n static readonly ApiActivityIdDeletePath = '/api/Activity/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiActivityIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityIdDelete$Response(params: ApiActivityIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiActivityIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiActivityIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiActivityIdDelete(params: ApiActivityIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiActivityIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewBannerDtoIEnumerablePagination } from '../../models/view-banner-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiBannerGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiBannerGet(http: HttpClient, rootUrl: string, params?: ApiBannerGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerGet.PATH = '/api/Banner';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewBannerDtoIEnumerablePagination } from '../../models/view-banner-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiBannerGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiBannerGet$Plain(http: HttpClient, rootUrl: string, params?: ApiBannerGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerGet$Plain.PATH = '/api/Banner';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiBannerIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiBannerIdDelete(http: HttpClient, rootUrl: string, params: ApiBannerIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerIdDelete.PATH = '/api/Banner/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewBannerDto } from '../../models/view-banner-dto';\r\n\r\nexport interface ApiBannerIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiBannerIdGet(http: HttpClient, rootUrl: string, params: ApiBannerIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerIdGet.PATH = '/api/Banner/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewBannerDto } from '../../models/view-banner-dto';\r\n\r\nexport interface ApiBannerIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiBannerIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiBannerIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerIdGet$Plain.PATH = '/api/Banner/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiBannerIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Link'?: string;\r\n'Img'?: Blob;\r\n}\r\n}\r\n\r\nexport function apiBannerIdPut(http: HttpClient, rootUrl: string, params: ApiBannerIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerIdPut.PATH = '/api/Banner/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiBannerPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Link'?: string;\r\n'Img'?: Blob;\r\n}\r\n}\r\n\r\nexport function apiBannerPost(http: HttpClient, rootUrl: string, params?: ApiBannerPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiBannerPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiBannerPost.PATH = '/api/Banner';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiBannerGet } from '../fn/banner/api-banner-get';\r\nimport { ApiBannerGet$Params } from '../fn/banner/api-banner-get';\r\nimport { apiBannerGet$Plain } from '../fn/banner/api-banner-get-plain';\r\nimport { ApiBannerGet$Plain$Params } from '../fn/banner/api-banner-get-plain';\r\nimport { apiBannerIdDelete } from '../fn/banner/api-banner-id-delete';\r\nimport { ApiBannerIdDelete$Params } from '../fn/banner/api-banner-id-delete';\r\nimport { apiBannerIdGet } from '../fn/banner/api-banner-id-get';\r\nimport { ApiBannerIdGet$Params } from '../fn/banner/api-banner-id-get';\r\nimport { apiBannerIdGet$Plain } from '../fn/banner/api-banner-id-get-plain';\r\nimport { ApiBannerIdGet$Plain$Params } from '../fn/banner/api-banner-id-get-plain';\r\nimport { apiBannerIdPut } from '../fn/banner/api-banner-id-put';\r\nimport { ApiBannerIdPut$Params } from '../fn/banner/api-banner-id-put';\r\nimport { apiBannerPost } from '../fn/banner/api-banner-post';\r\nimport { ApiBannerPost$Params } from '../fn/banner/api-banner-post';\r\nimport { ViewBannerDto } from '../models/view-banner-dto';\r\nimport { ViewBannerDtoIEnumerablePagination } from '../models/view-banner-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BannerService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiBannerGet()` */\r\n static readonly ApiBannerGetPath = '/api/Banner';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerGet$Plain$Response(params?: ApiBannerGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiBannerGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerGet$Plain(params?: ApiBannerGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiBannerGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewBannerDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerGet$Response(params?: ApiBannerGet$Params, context?: HttpContext): Observable> {\r\n return apiBannerGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerGet(params?: ApiBannerGet$Params, context?: HttpContext): Observable {\r\n return this.apiBannerGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewBannerDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiBannerPost()` */\r\n static readonly ApiBannerPostPath = '/api/Banner';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiBannerPost$Response(params?: ApiBannerPost$Params, context?: HttpContext): Observable> {\r\n return apiBannerPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiBannerPost(params?: ApiBannerPost$Params, context?: HttpContext): Observable {\r\n return this.apiBannerPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiBannerIdGet()` */\r\n static readonly ApiBannerIdGetPath = '/api/Banner/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerIdGet$Plain$Response(params: ApiBannerIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiBannerIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerIdGet$Plain(params: ApiBannerIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiBannerIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewBannerDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerIdGet$Response(params: ApiBannerIdGet$Params, context?: HttpContext): Observable> {\r\n return apiBannerIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerIdGet(params: ApiBannerIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiBannerIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewBannerDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiBannerIdPut()` */\r\n static readonly ApiBannerIdPutPath = '/api/Banner/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiBannerIdPut$Response(params: ApiBannerIdPut$Params, context?: HttpContext): Observable> {\r\n return apiBannerIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiBannerIdPut(params: ApiBannerIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiBannerIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiBannerIdDelete()` */\r\n static readonly ApiBannerIdDeletePath = '/api/Banner/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiBannerIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerIdDelete$Response(params: ApiBannerIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiBannerIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiBannerIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiBannerIdDelete(params: ApiBannerIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiBannerIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiChapterChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiChapterChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiChapterChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterChangeStatusPut.PATH = '/api/Chapter/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewChapterDtoIEnumerablePagination } from '../../models/view-chapter-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiChapterGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n courseId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiChapterGet(http: HttpClient, rootUrl: string, params?: ApiChapterGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('courseId', params.courseId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterGet.PATH = '/api/Chapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewChapterDtoIEnumerablePagination } from '../../models/view-chapter-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiChapterGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n courseId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiChapterGet$Plain(http: HttpClient, rootUrl: string, params?: ApiChapterGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('courseId', params.courseId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterGet$Plain.PATH = '/api/Chapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiChapterIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiChapterIdDelete(http: HttpClient, rootUrl: string, params: ApiChapterIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterIdDelete.PATH = '/api/Chapter/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewChapterDto } from '../../models/view-chapter-dto';\r\n\r\nexport interface ApiChapterIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiChapterIdGet(http: HttpClient, rootUrl: string, params: ApiChapterIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterIdGet.PATH = '/api/Chapter/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewChapterDto } from '../../models/view-chapter-dto';\r\n\r\nexport interface ApiChapterIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiChapterIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiChapterIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterIdGet$Plain.PATH = '/api/Chapter/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiChapterIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Description'?: string;\r\n'IsFree'?: boolean;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'CourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiChapterIdPut(http: HttpClient, rootUrl: string, params: ApiChapterIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterIdPut.PATH = '/api/Chapter/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiChapterPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Description'?: string;\r\n'IsFree'?: boolean;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'CourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiChapterPost(http: HttpClient, rootUrl: string, params?: ApiChapterPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiChapterPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiChapterPost.PATH = '/api/Chapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiChapterChangeStatusPut } from '../fn/chapter/api-chapter-change-status-put';\r\nimport { ApiChapterChangeStatusPut$Params } from '../fn/chapter/api-chapter-change-status-put';\r\nimport { apiChapterGet } from '../fn/chapter/api-chapter-get';\r\nimport { ApiChapterGet$Params } from '../fn/chapter/api-chapter-get';\r\nimport { apiChapterGet$Plain } from '../fn/chapter/api-chapter-get-plain';\r\nimport { ApiChapterGet$Plain$Params } from '../fn/chapter/api-chapter-get-plain';\r\nimport { apiChapterIdDelete } from '../fn/chapter/api-chapter-id-delete';\r\nimport { ApiChapterIdDelete$Params } from '../fn/chapter/api-chapter-id-delete';\r\nimport { apiChapterIdGet } from '../fn/chapter/api-chapter-id-get';\r\nimport { ApiChapterIdGet$Params } from '../fn/chapter/api-chapter-id-get';\r\nimport { apiChapterIdGet$Plain } from '../fn/chapter/api-chapter-id-get-plain';\r\nimport { ApiChapterIdGet$Plain$Params } from '../fn/chapter/api-chapter-id-get-plain';\r\nimport { apiChapterIdPut } from '../fn/chapter/api-chapter-id-put';\r\nimport { ApiChapterIdPut$Params } from '../fn/chapter/api-chapter-id-put';\r\nimport { apiChapterPost } from '../fn/chapter/api-chapter-post';\r\nimport { ApiChapterPost$Params } from '../fn/chapter/api-chapter-post';\r\nimport { ViewChapterDto } from '../models/view-chapter-dto';\r\nimport { ViewChapterDtoIEnumerablePagination } from '../models/view-chapter-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChapterService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiChapterGet()` */\r\n static readonly ApiChapterGetPath = '/api/Chapter';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterGet$Plain$Response(params?: ApiChapterGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiChapterGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterGet$Plain(params?: ApiChapterGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiChapterGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewChapterDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterGet$Response(params?: ApiChapterGet$Params, context?: HttpContext): Observable> {\r\n return apiChapterGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterGet(params?: ApiChapterGet$Params, context?: HttpContext): Observable {\r\n return this.apiChapterGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewChapterDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiChapterPost()` */\r\n static readonly ApiChapterPostPath = '/api/Chapter';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiChapterPost$Response(params?: ApiChapterPost$Params, context?: HttpContext): Observable> {\r\n return apiChapterPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiChapterPost(params?: ApiChapterPost$Params, context?: HttpContext): Observable {\r\n return this.apiChapterPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiChapterIdGet()` */\r\n static readonly ApiChapterIdGetPath = '/api/Chapter/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterIdGet$Plain$Response(params: ApiChapterIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiChapterIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterIdGet$Plain(params: ApiChapterIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiChapterIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewChapterDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterIdGet$Response(params: ApiChapterIdGet$Params, context?: HttpContext): Observable> {\r\n return apiChapterIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterIdGet(params: ApiChapterIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiChapterIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewChapterDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiChapterIdPut()` */\r\n static readonly ApiChapterIdPutPath = '/api/Chapter/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiChapterIdPut$Response(params: ApiChapterIdPut$Params, context?: HttpContext): Observable> {\r\n return apiChapterIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiChapterIdPut(params: ApiChapterIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiChapterIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiChapterIdDelete()` */\r\n static readonly ApiChapterIdDeletePath = '/api/Chapter/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterIdDelete$Response(params: ApiChapterIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiChapterIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterIdDelete(params: ApiChapterIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiChapterIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiChapterChangeStatusPut()` */\r\n static readonly ApiChapterChangeStatusPutPath = '/api/Chapter/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiChapterChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterChangeStatusPut$Response(params?: ApiChapterChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiChapterChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiChapterChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiChapterChangeStatusPut(params?: ApiChapterChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiChapterChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCommentChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiCommentChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiCommentChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentChangeStatusPut.PATH = '/api/Comment/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDtoIEnumerablePagination } from '../../models/view-comment-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCommentGetAllCommentsForAdminGet$Params {\r\n VId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCommentGetAllCommentsForAdminGet(http: HttpClient, rootUrl: string, params?: ApiCommentGetAllCommentsForAdminGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentGetAllCommentsForAdminGet.PATH, 'get');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentGetAllCommentsForAdminGet.PATH = '/api/Comment/getAllCommentsForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDtoIEnumerablePagination } from '../../models/view-comment-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCommentGetAllCommentsForAdminGet$Plain$Params {\r\n VId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCommentGetAllCommentsForAdminGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCommentGetAllCommentsForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentGetAllCommentsForAdminGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentGetAllCommentsForAdminGet$Plain.PATH = '/api/Comment/getAllCommentsForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDtoIEnumerablePagination } from '../../models/view-comment-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCommentGetAllCommentsGet$Params {\r\n VId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCommentGetAllCommentsGet(http: HttpClient, rootUrl: string, params?: ApiCommentGetAllCommentsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentGetAllCommentsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentGetAllCommentsGet.PATH = '/api/Comment/getAllComments';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDtoIEnumerablePagination } from '../../models/view-comment-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCommentGetAllCommentsGet$Plain$Params {\r\n VId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCommentGetAllCommentsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCommentGetAllCommentsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentGetAllCommentsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentGetAllCommentsGet$Plain.PATH = '/api/Comment/getAllComments';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDtoIEnumerablePagination } from '../../models/view-comment-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCommentGetPinnedCommentsForAdminGet$Params {\r\n VId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCommentGetPinnedCommentsForAdminGet(http: HttpClient, rootUrl: string, params?: ApiCommentGetPinnedCommentsForAdminGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentGetPinnedCommentsForAdminGet.PATH, 'get');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentGetPinnedCommentsForAdminGet.PATH = '/api/Comment/getPinnedCommentsForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDtoIEnumerablePagination } from '../../models/view-comment-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCommentGetPinnedCommentsForAdminGet$Plain$Params {\r\n VId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCommentGetPinnedCommentsForAdminGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCommentGetPinnedCommentsForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentGetPinnedCommentsForAdminGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentGetPinnedCommentsForAdminGet$Plain.PATH = '/api/Comment/getPinnedCommentsForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCommentIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiCommentIdDelete(http: HttpClient, rootUrl: string, params: ApiCommentIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentIdDelete.PATH = '/api/Comment/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDto } from '../../models/view-comment-dto';\r\n\r\nexport interface ApiCommentIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiCommentIdGet(http: HttpClient, rootUrl: string, params: ApiCommentIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentIdGet.PATH = '/api/Comment/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCommentDto } from '../../models/view-comment-dto';\r\n\r\nexport interface ApiCommentIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiCommentIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiCommentIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentIdGet$Plain.PATH = '/api/Comment/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCommentIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Text'?: string;\r\n'VideoCourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiCommentIdPut(http: HttpClient, rootUrl: string, params: ApiCommentIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentIdPut.PATH = '/api/Comment/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCommentPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Text'?: string;\r\n'VideoCourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiCommentPost(http: HttpClient, rootUrl: string, params?: ApiCommentPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCommentPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCommentPost.PATH = '/api/Comment';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiCommentChangeStatusPut } from '../fn/comment/api-comment-change-status-put';\r\nimport { ApiCommentChangeStatusPut$Params } from '../fn/comment/api-comment-change-status-put';\r\nimport { apiCommentGetAllCommentsForAdminGet } from '../fn/comment/api-comment-get-all-comments-for-admin-get';\r\nimport { ApiCommentGetAllCommentsForAdminGet$Params } from '../fn/comment/api-comment-get-all-comments-for-admin-get';\r\nimport { apiCommentGetAllCommentsForAdminGet$Plain } from '../fn/comment/api-comment-get-all-comments-for-admin-get-plain';\r\nimport { ApiCommentGetAllCommentsForAdminGet$Plain$Params } from '../fn/comment/api-comment-get-all-comments-for-admin-get-plain';\r\nimport { apiCommentGetAllCommentsGet } from '../fn/comment/api-comment-get-all-comments-get';\r\nimport { ApiCommentGetAllCommentsGet$Params } from '../fn/comment/api-comment-get-all-comments-get';\r\nimport { apiCommentGetAllCommentsGet$Plain } from '../fn/comment/api-comment-get-all-comments-get-plain';\r\nimport { ApiCommentGetAllCommentsGet$Plain$Params } from '../fn/comment/api-comment-get-all-comments-get-plain';\r\nimport { apiCommentGetPinnedCommentsForAdminGet } from '../fn/comment/api-comment-get-pinned-comments-for-admin-get';\r\nimport { ApiCommentGetPinnedCommentsForAdminGet$Params } from '../fn/comment/api-comment-get-pinned-comments-for-admin-get';\r\nimport { apiCommentGetPinnedCommentsForAdminGet$Plain } from '../fn/comment/api-comment-get-pinned-comments-for-admin-get-plain';\r\nimport { ApiCommentGetPinnedCommentsForAdminGet$Plain$Params } from '../fn/comment/api-comment-get-pinned-comments-for-admin-get-plain';\r\nimport { apiCommentIdDelete } from '../fn/comment/api-comment-id-delete';\r\nimport { ApiCommentIdDelete$Params } from '../fn/comment/api-comment-id-delete';\r\nimport { apiCommentIdGet } from '../fn/comment/api-comment-id-get';\r\nimport { ApiCommentIdGet$Params } from '../fn/comment/api-comment-id-get';\r\nimport { apiCommentIdGet$Plain } from '../fn/comment/api-comment-id-get-plain';\r\nimport { ApiCommentIdGet$Plain$Params } from '../fn/comment/api-comment-id-get-plain';\r\nimport { apiCommentIdPut } from '../fn/comment/api-comment-id-put';\r\nimport { ApiCommentIdPut$Params } from '../fn/comment/api-comment-id-put';\r\nimport { apiCommentPost } from '../fn/comment/api-comment-post';\r\nimport { ApiCommentPost$Params } from '../fn/comment/api-comment-post';\r\nimport { ViewCommentDto } from '../models/view-comment-dto';\r\nimport { ViewCommentDtoIEnumerablePagination } from '../models/view-comment-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CommentService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiCommentGetAllCommentsGet()` */\r\n static readonly ApiCommentGetAllCommentsGetPath = '/api/Comment/getAllComments';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentGetAllCommentsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsGet$Plain$Response(params?: ApiCommentGetAllCommentsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCommentGetAllCommentsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentGetAllCommentsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsGet$Plain(params?: ApiCommentGetAllCommentsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCommentGetAllCommentsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentGetAllCommentsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsGet$Response(params?: ApiCommentGetAllCommentsGet$Params, context?: HttpContext): Observable> {\r\n return apiCommentGetAllCommentsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentGetAllCommentsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsGet(params?: ApiCommentGetAllCommentsGet$Params, context?: HttpContext): Observable {\r\n return this.apiCommentGetAllCommentsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentGetAllCommentsForAdminGet()` */\r\n static readonly ApiCommentGetAllCommentsForAdminGetPath = '/api/Comment/getAllCommentsForAdmin';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentGetAllCommentsForAdminGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsForAdminGet$Plain$Response(params?: ApiCommentGetAllCommentsForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCommentGetAllCommentsForAdminGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentGetAllCommentsForAdminGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsForAdminGet$Plain(params?: ApiCommentGetAllCommentsForAdminGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCommentGetAllCommentsForAdminGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentGetAllCommentsForAdminGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsForAdminGet$Response(params?: ApiCommentGetAllCommentsForAdminGet$Params, context?: HttpContext): Observable> {\r\n return apiCommentGetAllCommentsForAdminGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentGetAllCommentsForAdminGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetAllCommentsForAdminGet(params?: ApiCommentGetAllCommentsForAdminGet$Params, context?: HttpContext): Observable {\r\n return this.apiCommentGetAllCommentsForAdminGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentGetPinnedCommentsForAdminGet()` */\r\n static readonly ApiCommentGetPinnedCommentsForAdminGetPath = '/api/Comment/getPinnedCommentsForAdmin';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentGetPinnedCommentsForAdminGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetPinnedCommentsForAdminGet$Plain$Response(params?: ApiCommentGetPinnedCommentsForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCommentGetPinnedCommentsForAdminGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentGetPinnedCommentsForAdminGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetPinnedCommentsForAdminGet$Plain(params?: ApiCommentGetPinnedCommentsForAdminGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCommentGetPinnedCommentsForAdminGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentGetPinnedCommentsForAdminGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetPinnedCommentsForAdminGet$Response(params?: ApiCommentGetPinnedCommentsForAdminGet$Params, context?: HttpContext): Observable> {\r\n return apiCommentGetPinnedCommentsForAdminGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentGetPinnedCommentsForAdminGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentGetPinnedCommentsForAdminGet(params?: ApiCommentGetPinnedCommentsForAdminGet$Params, context?: HttpContext): Observable {\r\n return this.apiCommentGetPinnedCommentsForAdminGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentIdGet()` */\r\n static readonly ApiCommentIdGetPath = '/api/Comment/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentIdGet$Plain$Response(params: ApiCommentIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCommentIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentIdGet$Plain(params: ApiCommentIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCommentIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentIdGet$Response(params: ApiCommentIdGet$Params, context?: HttpContext): Observable> {\r\n return apiCommentIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentIdGet(params: ApiCommentIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiCommentIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCommentDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentIdPut()` */\r\n static readonly ApiCommentIdPutPath = '/api/Comment/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCommentIdPut$Response(params: ApiCommentIdPut$Params, context?: HttpContext): Observable> {\r\n return apiCommentIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCommentIdPut(params: ApiCommentIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiCommentIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentIdDelete()` */\r\n static readonly ApiCommentIdDeletePath = '/api/Comment/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentIdDelete$Response(params: ApiCommentIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiCommentIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentIdDelete(params: ApiCommentIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiCommentIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentPost()` */\r\n static readonly ApiCommentPostPath = '/api/Comment';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCommentPost$Response(params?: ApiCommentPost$Params, context?: HttpContext): Observable> {\r\n return apiCommentPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCommentPost(params?: ApiCommentPost$Params, context?: HttpContext): Observable {\r\n return this.apiCommentPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCommentChangeStatusPut()` */\r\n static readonly ApiCommentChangeStatusPutPath = '/api/Comment/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCommentChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentChangeStatusPut$Response(params?: ApiCommentChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiCommentChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCommentChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCommentChangeStatusPut(params?: ApiCommentChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiCommentChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCourseAcceptStudentPut$Params {\r\n body?: {\r\n'UserId'?: string;\r\n'CourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiCourseAcceptStudentPut(http: HttpClient, rootUrl: string, params?: ApiCourseAcceptStudentPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseAcceptStudentPut.PATH, 'put');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseAcceptStudentPut.PATH = '/api/Course/AcceptStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCourseChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiCourseChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiCourseChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseChangeStatusPut.PATH = '/api/Course/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCourseDtoIEnumerablePagination } from '../../models/view-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCourseGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n teacherId?: number;\r\n subjectId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCourseGet(http: HttpClient, rootUrl: string, params?: ApiCourseGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseGet.PATH = '/api/Course';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCourseDtoIEnumerablePagination } from '../../models/view-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCourseGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n teacherId?: number;\r\n subjectId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCourseGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseGet$Plain.PATH = '/api/Course';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCourseGetAcceptedStudentGet$Params {\r\n id?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCourseGetAcceptedStudentGet(http: HttpClient, rootUrl: string, params?: ApiCourseGetAcceptedStudentGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGetAcceptedStudentGet.PATH, 'get');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseGetAcceptedStudentGet.PATH = '/api/Course/getAcceptedStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCourseGetAcceptedStudentGet$Plain$Params {\r\n id?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCourseGetAcceptedStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCourseGetAcceptedStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGetAcceptedStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseGetAcceptedStudentGet$Plain.PATH = '/api/Course/getAcceptedStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentCourseDtoIEnumerablePagination } from '../../models/view-student-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCourseGetPinnedStudentGet$Params {\r\n courseid?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCourseGetPinnedStudentGet(http: HttpClient, rootUrl: string, params?: ApiCourseGetPinnedStudentGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGetPinnedStudentGet.PATH, 'get');\r\n if (params) {\r\n rb.query('courseid', params.courseid, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseGetPinnedStudentGet.PATH = '/api/Course/getPinnedStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentCourseDtoIEnumerablePagination } from '../../models/view-student-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiCourseGetPinnedStudentGet$Plain$Params {\r\n courseid?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiCourseGetPinnedStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCourseGetPinnedStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGetPinnedStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('courseid', params.courseid, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseGetPinnedStudentGet$Plain.PATH = '/api/Course/getPinnedStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCourseDto } from '../../models/view-course-dto';\r\n\r\nexport interface ApiCourseGetTopCourseGet$Params {\r\n}\r\n\r\nexport function apiCourseGetTopCourseGet(http: HttpClient, rootUrl: string, params?: ApiCourseGetTopCourseGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGetTopCourseGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiCourseGetTopCourseGet.PATH = '/api/Course/getTopCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCourseDto } from '../../models/view-course-dto';\r\n\r\nexport interface ApiCourseGetTopCourseGet$Plain$Params {\r\n}\r\n\r\nexport function apiCourseGetTopCourseGet$Plain(http: HttpClient, rootUrl: string, params?: ApiCourseGetTopCourseGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseGetTopCourseGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiCourseGetTopCourseGet$Plain.PATH = '/api/Course/getTopCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCourseIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiCourseIdDelete(http: HttpClient, rootUrl: string, params: ApiCourseIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseIdDelete.PATH = '/api/Course/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCourseDto } from '../../models/view-course-dto';\r\n\r\nexport interface ApiCourseIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiCourseIdGet(http: HttpClient, rootUrl: string, params: ApiCourseIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseIdGet.PATH = '/api/Course/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewCourseDto } from '../../models/view-course-dto';\r\n\r\nexport interface ApiCourseIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiCourseIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiCourseIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseIdGet$Plain.PATH = '/api/Course/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCourseIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'Price'?: number;\r\n'TeacherId'?: number;\r\n'SubjectId'?: number;\r\n}\r\n}\r\n\r\nexport function apiCourseIdPut(http: HttpClient, rootUrl: string, params: ApiCourseIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseIdPut.PATH = '/api/Course/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCoursePost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'Price'?: number;\r\n'TeacherId'?: number;\r\n'SubjectId'?: number;\r\n}\r\n}\r\n\r\nexport function apiCoursePost(http: HttpClient, rootUrl: string, params?: ApiCoursePost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCoursePost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCoursePost.PATH = '/api/Course';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiCourseRejectStudentDelete$Params {\r\n body?: {\r\n'UserId'?: string;\r\n'CourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiCourseRejectStudentDelete(http: HttpClient, rootUrl: string, params?: ApiCourseRejectStudentDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiCourseRejectStudentDelete.PATH, 'delete');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiCourseRejectStudentDelete.PATH = '/api/Course/RejectStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiCourseAcceptStudentPut } from '../fn/course/api-course-accept-student-put';\r\nimport { ApiCourseAcceptStudentPut$Params } from '../fn/course/api-course-accept-student-put';\r\nimport { apiCourseChangeStatusPut } from '../fn/course/api-course-change-status-put';\r\nimport { ApiCourseChangeStatusPut$Params } from '../fn/course/api-course-change-status-put';\r\nimport { apiCourseGet } from '../fn/course/api-course-get';\r\nimport { ApiCourseGet$Params } from '../fn/course/api-course-get';\r\nimport { apiCourseGet$Plain } from '../fn/course/api-course-get-plain';\r\nimport { ApiCourseGet$Plain$Params } from '../fn/course/api-course-get-plain';\r\nimport { apiCourseGetAcceptedStudentGet } from '../fn/course/api-course-get-accepted-student-get';\r\nimport { ApiCourseGetAcceptedStudentGet$Params } from '../fn/course/api-course-get-accepted-student-get';\r\nimport { apiCourseGetAcceptedStudentGet$Plain } from '../fn/course/api-course-get-accepted-student-get-plain';\r\nimport { ApiCourseGetAcceptedStudentGet$Plain$Params } from '../fn/course/api-course-get-accepted-student-get-plain';\r\nimport { apiCourseGetPinnedStudentGet } from '../fn/course/api-course-get-pinned-student-get';\r\nimport { ApiCourseGetPinnedStudentGet$Params } from '../fn/course/api-course-get-pinned-student-get';\r\nimport { apiCourseGetPinnedStudentGet$Plain } from '../fn/course/api-course-get-pinned-student-get-plain';\r\nimport { ApiCourseGetPinnedStudentGet$Plain$Params } from '../fn/course/api-course-get-pinned-student-get-plain';\r\nimport { apiCourseGetTopCourseGet } from '../fn/course/api-course-get-top-course-get';\r\nimport { ApiCourseGetTopCourseGet$Params } from '../fn/course/api-course-get-top-course-get';\r\nimport { apiCourseGetTopCourseGet$Plain } from '../fn/course/api-course-get-top-course-get-plain';\r\nimport { ApiCourseGetTopCourseGet$Plain$Params } from '../fn/course/api-course-get-top-course-get-plain';\r\nimport { apiCourseIdDelete } from '../fn/course/api-course-id-delete';\r\nimport { ApiCourseIdDelete$Params } from '../fn/course/api-course-id-delete';\r\nimport { apiCourseIdGet } from '../fn/course/api-course-id-get';\r\nimport { ApiCourseIdGet$Params } from '../fn/course/api-course-id-get';\r\nimport { apiCourseIdGet$Plain } from '../fn/course/api-course-id-get-plain';\r\nimport { ApiCourseIdGet$Plain$Params } from '../fn/course/api-course-id-get-plain';\r\nimport { apiCourseIdPut } from '../fn/course/api-course-id-put';\r\nimport { ApiCourseIdPut$Params } from '../fn/course/api-course-id-put';\r\nimport { apiCoursePost } from '../fn/course/api-course-post';\r\nimport { ApiCoursePost$Params } from '../fn/course/api-course-post';\r\nimport { apiCourseRejectStudentDelete } from '../fn/course/api-course-reject-student-delete';\r\nimport { ApiCourseRejectStudentDelete$Params } from '../fn/course/api-course-reject-student-delete';\r\nimport { ViewCourseDto } from '../models/view-course-dto';\r\nimport { ViewCourseDtoIEnumerablePagination } from '../models/view-course-dto-i-enumerable-pagination';\r\nimport { ViewStudentCourseDtoIEnumerablePagination } from '../models/view-student-course-dto-i-enumerable-pagination';\r\nimport { ViewStudentDtoIEnumerablePagination } from '../models/view-student-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CourseService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiCourseGet()` */\r\n static readonly ApiCourseGetPath = '/api/Course';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGet$Plain$Response(params?: ApiCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCourseGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGet$Plain(params?: ApiCourseGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCourseGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGet$Response(params?: ApiCourseGet$Params, context?: HttpContext): Observable> {\r\n return apiCourseGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGet(params?: ApiCourseGet$Params, context?: HttpContext): Observable {\r\n return this.apiCourseGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCoursePost()` */\r\n static readonly ApiCoursePostPath = '/api/Course';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCoursePost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCoursePost$Response(params?: ApiCoursePost$Params, context?: HttpContext): Observable> {\r\n return apiCoursePost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCoursePost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCoursePost(params?: ApiCoursePost$Params, context?: HttpContext): Observable {\r\n return this.apiCoursePost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseGetTopCourseGet()` */\r\n static readonly ApiCourseGetTopCourseGetPath = '/api/Course/getTopCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGetTopCourseGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetTopCourseGet$Plain$Response(params?: ApiCourseGetTopCourseGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiCourseGetTopCourseGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGetTopCourseGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetTopCourseGet$Plain(params?: ApiCourseGetTopCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiCourseGetTopCourseGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGetTopCourseGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetTopCourseGet$Response(params?: ApiCourseGetTopCourseGet$Params, context?: HttpContext): Observable>> {\r\n return apiCourseGetTopCourseGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGetTopCourseGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetTopCourseGet(params?: ApiCourseGetTopCourseGet$Params, context?: HttpContext): Observable> {\r\n return this.apiCourseGetTopCourseGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseGetAcceptedStudentGet()` */\r\n static readonly ApiCourseGetAcceptedStudentGetPath = '/api/Course/getAcceptedStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGetAcceptedStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetAcceptedStudentGet$Plain$Response(params?: ApiCourseGetAcceptedStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCourseGetAcceptedStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGetAcceptedStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetAcceptedStudentGet$Plain(params?: ApiCourseGetAcceptedStudentGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCourseGetAcceptedStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGetAcceptedStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetAcceptedStudentGet$Response(params?: ApiCourseGetAcceptedStudentGet$Params, context?: HttpContext): Observable> {\r\n return apiCourseGetAcceptedStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGetAcceptedStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetAcceptedStudentGet(params?: ApiCourseGetAcceptedStudentGet$Params, context?: HttpContext): Observable {\r\n return this.apiCourseGetAcceptedStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseChangeStatusPut()` */\r\n static readonly ApiCourseChangeStatusPutPath = '/api/Course/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseChangeStatusPut$Response(params?: ApiCourseChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiCourseChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseChangeStatusPut(params?: ApiCourseChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiCourseChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseGetPinnedStudentGet()` */\r\n static readonly ApiCourseGetPinnedStudentGetPath = '/api/Course/getPinnedStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGetPinnedStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetPinnedStudentGet$Plain$Response(params?: ApiCourseGetPinnedStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCourseGetPinnedStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGetPinnedStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetPinnedStudentGet$Plain(params?: ApiCourseGetPinnedStudentGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCourseGetPinnedStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseGetPinnedStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetPinnedStudentGet$Response(params?: ApiCourseGetPinnedStudentGet$Params, context?: HttpContext): Observable> {\r\n return apiCourseGetPinnedStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseGetPinnedStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseGetPinnedStudentGet(params?: ApiCourseGetPinnedStudentGet$Params, context?: HttpContext): Observable {\r\n return this.apiCourseGetPinnedStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseIdGet()` */\r\n static readonly ApiCourseIdGetPath = '/api/Course/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseIdGet$Plain$Response(params: ApiCourseIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiCourseIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseIdGet$Plain(params: ApiCourseIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiCourseIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCourseDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseIdGet$Response(params: ApiCourseIdGet$Params, context?: HttpContext): Observable> {\r\n return apiCourseIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseIdGet(params: ApiCourseIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiCourseIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewCourseDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseIdPut()` */\r\n static readonly ApiCourseIdPutPath = '/api/Course/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCourseIdPut$Response(params: ApiCourseIdPut$Params, context?: HttpContext): Observable> {\r\n return apiCourseIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCourseIdPut(params: ApiCourseIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiCourseIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseIdDelete()` */\r\n static readonly ApiCourseIdDeletePath = '/api/Course/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseIdDelete$Response(params: ApiCourseIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiCourseIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiCourseIdDelete(params: ApiCourseIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiCourseIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseAcceptStudentPut()` */\r\n static readonly ApiCourseAcceptStudentPutPath = '/api/Course/AcceptStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseAcceptStudentPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCourseAcceptStudentPut$Response(params?: ApiCourseAcceptStudentPut$Params, context?: HttpContext): Observable> {\r\n return apiCourseAcceptStudentPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseAcceptStudentPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCourseAcceptStudentPut(params?: ApiCourseAcceptStudentPut$Params, context?: HttpContext): Observable {\r\n return this.apiCourseAcceptStudentPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiCourseRejectStudentDelete()` */\r\n static readonly ApiCourseRejectStudentDeletePath = '/api/Course/RejectStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiCourseRejectStudentDelete()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCourseRejectStudentDelete$Response(params?: ApiCourseRejectStudentDelete$Params, context?: HttpContext): Observable> {\r\n return apiCourseRejectStudentDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiCourseRejectStudentDelete$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiCourseRejectStudentDelete(params?: ApiCourseRejectStudentDelete$Params, context?: HttpContext): Observable {\r\n return this.apiCourseRejectStudentDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddEditExamDto } from '../../models/add-edit-exam-dto';\r\n\r\nexport interface ApiExamAddExamPost$Params {\r\n body?: AddEditExamDto\r\n}\r\n\r\nexport function apiExamAddExamPost(http: HttpClient, rootUrl: string, params?: ApiExamAddExamPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamAddExamPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamAddExamPost.PATH = '/api/Exam/addExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiExamChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiExamChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiExamChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamChangeStatusPut.PATH = '/api/Exam/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiExamDeleteExamIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiExamDeleteExamIdDelete(http: HttpClient, rootUrl: string, params: ApiExamDeleteExamIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamDeleteExamIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamDeleteExamIdDelete.PATH = '/api/Exam/deleteExam/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDtoIEnumerablePagination } from '../../models/view-exam-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiExamGetAllExamsGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiExamGetAllExamsGet(http: HttpClient, rootUrl: string, params?: ApiExamGetAllExamsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetAllExamsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamGetAllExamsGet.PATH = '/api/Exam/getAllExams';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDtoIEnumerablePagination } from '../../models/view-exam-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiExamGetAllExamsGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiExamGetAllExamsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiExamGetAllExamsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetAllExamsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamGetAllExamsGet$Plain.PATH = '/api/Exam/getAllExams';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDto } from '../../models/view-exam-dto';\r\n\r\nexport interface ApiExamGetExamByIdIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiExamGetExamByIdIdGet(http: HttpClient, rootUrl: string, params: ApiExamGetExamByIdIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetExamByIdIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamGetExamByIdIdGet.PATH = '/api/Exam/getExamById/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDto } from '../../models/view-exam-dto';\r\n\r\nexport interface ApiExamGetExamByIdIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiExamGetExamByIdIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiExamGetExamByIdIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetExamByIdIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamGetExamByIdIdGet$Plain.PATH = '/api/Exam/getExamById/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDto } from '../../models/view-question-dto';\r\n\r\nexport interface ApiExamGetExamQuesionsForEditGet$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiExamGetExamQuesionsForEditGet(http: HttpClient, rootUrl: string, params?: ApiExamGetExamQuesionsForEditGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetExamQuesionsForEditGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiExamGetExamQuesionsForEditGet.PATH = '/api/Exam/GetExamQuesionsForEdit';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDto } from '../../models/view-question-dto';\r\n\r\nexport interface ApiExamGetExamQuesionsForEditGet$Plain$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiExamGetExamQuesionsForEditGet$Plain(http: HttpClient, rootUrl: string, params?: ApiExamGetExamQuesionsForEditGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetExamQuesionsForEditGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiExamGetExamQuesionsForEditGet$Plain.PATH = '/api/Exam/GetExamQuesionsForEdit';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDto } from '../../models/view-question-dto';\r\n\r\nexport interface ApiExamGetExamQuesionsForStudentGet$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiExamGetExamQuesionsForStudentGet(http: HttpClient, rootUrl: string, params?: ApiExamGetExamQuesionsForStudentGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetExamQuesionsForStudentGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiExamGetExamQuesionsForStudentGet.PATH = '/api/Exam/GetExamQuesionsForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDto } from '../../models/view-question-dto';\r\n\r\nexport interface ApiExamGetExamQuesionsForStudentGet$Plain$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiExamGetExamQuesionsForStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiExamGetExamQuesionsForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiExamGetExamQuesionsForStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiExamGetExamQuesionsForStudentGet$Plain.PATH = '/api/Exam/GetExamQuesionsForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddEditExamDto } from '../../models/add-edit-exam-dto';\r\n\r\nexport interface ApiExamUpdateExamPut$Params {\r\n body?: AddEditExamDto\r\n}\r\n\r\nexport function apiExamUpdateExamPut(http: HttpClient, rootUrl: string, params?: ApiExamUpdateExamPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiExamUpdateExamPut.PATH, 'put');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiExamUpdateExamPut.PATH = '/api/Exam/updateExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiExamAddExamPost } from '../fn/exam/api-exam-add-exam-post';\r\nimport { ApiExamAddExamPost$Params } from '../fn/exam/api-exam-add-exam-post';\r\nimport { apiExamChangeStatusPut } from '../fn/exam/api-exam-change-status-put';\r\nimport { ApiExamChangeStatusPut$Params } from '../fn/exam/api-exam-change-status-put';\r\nimport { apiExamDeleteExamIdDelete } from '../fn/exam/api-exam-delete-exam-id-delete';\r\nimport { ApiExamDeleteExamIdDelete$Params } from '../fn/exam/api-exam-delete-exam-id-delete';\r\nimport { apiExamGetAllExamsGet } from '../fn/exam/api-exam-get-all-exams-get';\r\nimport { ApiExamGetAllExamsGet$Params } from '../fn/exam/api-exam-get-all-exams-get';\r\nimport { apiExamGetAllExamsGet$Plain } from '../fn/exam/api-exam-get-all-exams-get-plain';\r\nimport { ApiExamGetAllExamsGet$Plain$Params } from '../fn/exam/api-exam-get-all-exams-get-plain';\r\nimport { apiExamGetExamByIdIdGet } from '../fn/exam/api-exam-get-exam-by-id-id-get';\r\nimport { ApiExamGetExamByIdIdGet$Params } from '../fn/exam/api-exam-get-exam-by-id-id-get';\r\nimport { apiExamGetExamByIdIdGet$Plain } from '../fn/exam/api-exam-get-exam-by-id-id-get-plain';\r\nimport { ApiExamGetExamByIdIdGet$Plain$Params } from '../fn/exam/api-exam-get-exam-by-id-id-get-plain';\r\nimport { apiExamGetExamQuesionsForEditGet } from '../fn/exam/api-exam-get-exam-quesions-for-edit-get';\r\nimport { ApiExamGetExamQuesionsForEditGet$Params } from '../fn/exam/api-exam-get-exam-quesions-for-edit-get';\r\nimport { apiExamGetExamQuesionsForEditGet$Plain } from '../fn/exam/api-exam-get-exam-quesions-for-edit-get-plain';\r\nimport { ApiExamGetExamQuesionsForEditGet$Plain$Params } from '../fn/exam/api-exam-get-exam-quesions-for-edit-get-plain';\r\nimport { apiExamGetExamQuesionsForStudentGet } from '../fn/exam/api-exam-get-exam-quesions-for-student-get';\r\nimport { ApiExamGetExamQuesionsForStudentGet$Params } from '../fn/exam/api-exam-get-exam-quesions-for-student-get';\r\nimport { apiExamGetExamQuesionsForStudentGet$Plain } from '../fn/exam/api-exam-get-exam-quesions-for-student-get-plain';\r\nimport { ApiExamGetExamQuesionsForStudentGet$Plain$Params } from '../fn/exam/api-exam-get-exam-quesions-for-student-get-plain';\r\nimport { apiExamUpdateExamPut } from '../fn/exam/api-exam-update-exam-put';\r\nimport { ApiExamUpdateExamPut$Params } from '../fn/exam/api-exam-update-exam-put';\r\nimport { ViewExamDto } from '../models/view-exam-dto';\r\nimport { ViewExamDtoIEnumerablePagination } from '../models/view-exam-dto-i-enumerable-pagination';\r\nimport { ViewQuestionDto } from '../models/view-question-dto';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ExamService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiExamGetAllExamsGet()` */\r\n static readonly ApiExamGetAllExamsGetPath = '/api/Exam/getAllExams';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetAllExamsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetAllExamsGet$Plain$Response(params?: ApiExamGetAllExamsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiExamGetAllExamsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetAllExamsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetAllExamsGet$Plain(params?: ApiExamGetAllExamsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiExamGetAllExamsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewExamDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetAllExamsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetAllExamsGet$Response(params?: ApiExamGetAllExamsGet$Params, context?: HttpContext): Observable> {\r\n return apiExamGetAllExamsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetAllExamsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetAllExamsGet(params?: ApiExamGetAllExamsGet$Params, context?: HttpContext): Observable {\r\n return this.apiExamGetAllExamsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewExamDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamGetExamByIdIdGet()` */\r\n static readonly ApiExamGetExamByIdIdGetPath = '/api/Exam/getExamById/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetExamByIdIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamByIdIdGet$Plain$Response(params: ApiExamGetExamByIdIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiExamGetExamByIdIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetExamByIdIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamByIdIdGet$Plain(params: ApiExamGetExamByIdIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiExamGetExamByIdIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewExamDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetExamByIdIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamByIdIdGet$Response(params: ApiExamGetExamByIdIdGet$Params, context?: HttpContext): Observable> {\r\n return apiExamGetExamByIdIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetExamByIdIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamByIdIdGet(params: ApiExamGetExamByIdIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiExamGetExamByIdIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewExamDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamGetExamQuesionsForStudentGet()` */\r\n static readonly ApiExamGetExamQuesionsForStudentGetPath = '/api/Exam/GetExamQuesionsForStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetExamQuesionsForStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForStudentGet$Plain$Response(params?: ApiExamGetExamQuesionsForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiExamGetExamQuesionsForStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetExamQuesionsForStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForStudentGet$Plain(params?: ApiExamGetExamQuesionsForStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiExamGetExamQuesionsForStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetExamQuesionsForStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForStudentGet$Response(params?: ApiExamGetExamQuesionsForStudentGet$Params, context?: HttpContext): Observable>> {\r\n return apiExamGetExamQuesionsForStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetExamQuesionsForStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForStudentGet(params?: ApiExamGetExamQuesionsForStudentGet$Params, context?: HttpContext): Observable> {\r\n return this.apiExamGetExamQuesionsForStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamGetExamQuesionsForEditGet()` */\r\n static readonly ApiExamGetExamQuesionsForEditGetPath = '/api/Exam/GetExamQuesionsForEdit';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetExamQuesionsForEditGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForEditGet$Plain$Response(params?: ApiExamGetExamQuesionsForEditGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiExamGetExamQuesionsForEditGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetExamQuesionsForEditGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForEditGet$Plain(params?: ApiExamGetExamQuesionsForEditGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiExamGetExamQuesionsForEditGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamGetExamQuesionsForEditGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForEditGet$Response(params?: ApiExamGetExamQuesionsForEditGet$Params, context?: HttpContext): Observable>> {\r\n return apiExamGetExamQuesionsForEditGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamGetExamQuesionsForEditGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamGetExamQuesionsForEditGet(params?: ApiExamGetExamQuesionsForEditGet$Params, context?: HttpContext): Observable> {\r\n return this.apiExamGetExamQuesionsForEditGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamChangeStatusPut()` */\r\n static readonly ApiExamChangeStatusPutPath = '/api/Exam/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamChangeStatusPut$Response(params?: ApiExamChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiExamChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamChangeStatusPut(params?: ApiExamChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiExamChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamAddExamPost()` */\r\n static readonly ApiExamAddExamPostPath = '/api/Exam/addExam';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamAddExamPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiExamAddExamPost$Response(params?: ApiExamAddExamPost$Params, context?: HttpContext): Observable> {\r\n return apiExamAddExamPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamAddExamPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiExamAddExamPost(params?: ApiExamAddExamPost$Params, context?: HttpContext): Observable {\r\n return this.apiExamAddExamPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamUpdateExamPut()` */\r\n static readonly ApiExamUpdateExamPutPath = '/api/Exam/updateExam';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamUpdateExamPut()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiExamUpdateExamPut$Response(params?: ApiExamUpdateExamPut$Params, context?: HttpContext): Observable> {\r\n return apiExamUpdateExamPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamUpdateExamPut$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiExamUpdateExamPut(params?: ApiExamUpdateExamPut$Params, context?: HttpContext): Observable {\r\n return this.apiExamUpdateExamPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiExamDeleteExamIdDelete()` */\r\n static readonly ApiExamDeleteExamIdDeletePath = '/api/Exam/deleteExam/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiExamDeleteExamIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamDeleteExamIdDelete$Response(params: ApiExamDeleteExamIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiExamDeleteExamIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiExamDeleteExamIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiExamDeleteExamIdDelete(params: ApiExamDeleteExamIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiExamDeleteExamIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelYearsChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiLevelYearsChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiLevelYearsChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsChangeStatusPut.PATH = '/api/LevelYears/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDto } from '../../models/view-level-years-dto';\r\n\r\nexport interface ApiLevelYearsGetAllLevelYearsByLevelIdGet$Params {\r\n levelId?: number;\r\n}\r\n\r\nexport function apiLevelYearsGetAllLevelYearsByLevelIdGet(http: HttpClient, rootUrl: string, params?: ApiLevelYearsGetAllLevelYearsByLevelIdGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsGetAllLevelYearsByLevelIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('levelId', params.levelId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsGetAllLevelYearsByLevelIdGet.PATH = '/api/LevelYears/getAllLevelYearsByLevelId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDto } from '../../models/view-level-years-dto';\r\n\r\nexport interface ApiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Params {\r\n levelId?: number;\r\n}\r\n\r\nexport function apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('levelId', params.levelId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsGetAllLevelYearsByLevelIdGet$Plain.PATH = '/api/LevelYears/getAllLevelYearsByLevelId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDtoIEnumerablePagination } from '../../models/view-level-years-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiLevelYearsGetAllLevelYearsGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n TeacherId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiLevelYearsGetAllLevelYearsGet(http: HttpClient, rootUrl: string, params?: ApiLevelYearsGetAllLevelYearsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsGetAllLevelYearsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('TeacherId', params.TeacherId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsGetAllLevelYearsGet.PATH = '/api/LevelYears/getAllLevelYears';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDtoIEnumerablePagination } from '../../models/view-level-years-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiLevelYearsGetAllLevelYearsGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n TeacherId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiLevelYearsGetAllLevelYearsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiLevelYearsGetAllLevelYearsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsGetAllLevelYearsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('TeacherId', params.TeacherId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsGetAllLevelYearsGet$Plain.PATH = '/api/LevelYears/getAllLevelYears';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelYearsIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiLevelYearsIdDelete(http: HttpClient, rootUrl: string, params: ApiLevelYearsIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsIdDelete.PATH = '/api/LevelYears/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDto } from '../../models/view-level-years-dto';\r\n\r\nexport interface ApiLevelYearsIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiLevelYearsIdGet(http: HttpClient, rootUrl: string, params: ApiLevelYearsIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsIdGet.PATH = '/api/LevelYears/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDto } from '../../models/view-level-years-dto';\r\n\r\nexport interface ApiLevelYearsIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiLevelYearsIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiLevelYearsIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsIdGet$Plain.PATH = '/api/LevelYears/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelYearsIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'LevelId'?: number;\r\n}\r\n}\r\n\r\nexport function apiLevelYearsIdPut(http: HttpClient, rootUrl: string, params: ApiLevelYearsIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsIdPut.PATH = '/api/LevelYears/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelYearsPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'LevelId'?: number;\r\n}\r\n}\r\n\r\nexport function apiLevelYearsPost(http: HttpClient, rootUrl: string, params?: ApiLevelYearsPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelYearsPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelYearsPost.PATH = '/api/LevelYears';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiLevelYearsChangeStatusPut } from '../fn/level-years/api-level-years-change-status-put';\r\nimport { ApiLevelYearsChangeStatusPut$Params } from '../fn/level-years/api-level-years-change-status-put';\r\nimport { apiLevelYearsGetAllLevelYearsByLevelIdGet } from '../fn/level-years/api-level-years-get-all-level-years-by-level-id-get';\r\nimport { ApiLevelYearsGetAllLevelYearsByLevelIdGet$Params } from '../fn/level-years/api-level-years-get-all-level-years-by-level-id-get';\r\nimport { apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain } from '../fn/level-years/api-level-years-get-all-level-years-by-level-id-get-plain';\r\nimport { ApiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Params } from '../fn/level-years/api-level-years-get-all-level-years-by-level-id-get-plain';\r\nimport { apiLevelYearsGetAllLevelYearsGet } from '../fn/level-years/api-level-years-get-all-level-years-get';\r\nimport { ApiLevelYearsGetAllLevelYearsGet$Params } from '../fn/level-years/api-level-years-get-all-level-years-get';\r\nimport { apiLevelYearsGetAllLevelYearsGet$Plain } from '../fn/level-years/api-level-years-get-all-level-years-get-plain';\r\nimport { ApiLevelYearsGetAllLevelYearsGet$Plain$Params } from '../fn/level-years/api-level-years-get-all-level-years-get-plain';\r\nimport { apiLevelYearsIdDelete } from '../fn/level-years/api-level-years-id-delete';\r\nimport { ApiLevelYearsIdDelete$Params } from '../fn/level-years/api-level-years-id-delete';\r\nimport { apiLevelYearsIdGet } from '../fn/level-years/api-level-years-id-get';\r\nimport { ApiLevelYearsIdGet$Params } from '../fn/level-years/api-level-years-id-get';\r\nimport { apiLevelYearsIdGet$Plain } from '../fn/level-years/api-level-years-id-get-plain';\r\nimport { ApiLevelYearsIdGet$Plain$Params } from '../fn/level-years/api-level-years-id-get-plain';\r\nimport { apiLevelYearsIdPut } from '../fn/level-years/api-level-years-id-put';\r\nimport { ApiLevelYearsIdPut$Params } from '../fn/level-years/api-level-years-id-put';\r\nimport { apiLevelYearsPost } from '../fn/level-years/api-level-years-post';\r\nimport { ApiLevelYearsPost$Params } from '../fn/level-years/api-level-years-post';\r\nimport { ViewLevelYearsDto } from '../models/view-level-years-dto';\r\nimport { ViewLevelYearsDtoIEnumerablePagination } from '../models/view-level-years-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LevelYearsService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsGetAllLevelYearsGet()` */\r\n static readonly ApiLevelYearsGetAllLevelYearsGetPath = '/api/LevelYears/getAllLevelYears';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsGetAllLevelYearsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsGet$Plain$Response(params?: ApiLevelYearsGetAllLevelYearsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsGetAllLevelYearsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsGetAllLevelYearsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsGet$Plain(params?: ApiLevelYearsGetAllLevelYearsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsGetAllLevelYearsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelYearsDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsGetAllLevelYearsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsGet$Response(params?: ApiLevelYearsGetAllLevelYearsGet$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsGetAllLevelYearsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsGetAllLevelYearsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsGet(params?: ApiLevelYearsGetAllLevelYearsGet$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsGetAllLevelYearsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelYearsDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsGetAllLevelYearsByLevelIdGet()` */\r\n static readonly ApiLevelYearsGetAllLevelYearsByLevelIdGetPath = '/api/LevelYears/getAllLevelYearsByLevelId';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Response(params?: ApiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain(params?: ApiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiLevelYearsGetAllLevelYearsByLevelIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsGetAllLevelYearsByLevelIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsByLevelIdGet$Response(params?: ApiLevelYearsGetAllLevelYearsByLevelIdGet$Params, context?: HttpContext): Observable>> {\r\n return apiLevelYearsGetAllLevelYearsByLevelIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsGetAllLevelYearsByLevelIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsGetAllLevelYearsByLevelIdGet(params?: ApiLevelYearsGetAllLevelYearsByLevelIdGet$Params, context?: HttpContext): Observable> {\r\n return this.apiLevelYearsGetAllLevelYearsByLevelIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsChangeStatusPut()` */\r\n static readonly ApiLevelYearsChangeStatusPutPath = '/api/LevelYears/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsChangeStatusPut$Response(params?: ApiLevelYearsChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsChangeStatusPut(params?: ApiLevelYearsChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsIdGet()` */\r\n static readonly ApiLevelYearsIdGetPath = '/api/LevelYears/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsIdGet$Plain$Response(params: ApiLevelYearsIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsIdGet$Plain(params: ApiLevelYearsIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelYearsDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsIdGet$Response(params: ApiLevelYearsIdGet$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsIdGet(params: ApiLevelYearsIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelYearsDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsIdPut()` */\r\n static readonly ApiLevelYearsIdPutPath = '/api/LevelYears/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelYearsIdPut$Response(params: ApiLevelYearsIdPut$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelYearsIdPut(params: ApiLevelYearsIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsIdDelete()` */\r\n static readonly ApiLevelYearsIdDeletePath = '/api/LevelYears/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsIdDelete$Response(params: ApiLevelYearsIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelYearsIdDelete(params: ApiLevelYearsIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelYearsPost()` */\r\n static readonly ApiLevelYearsPostPath = '/api/LevelYears';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelYearsPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelYearsPost$Response(params?: ApiLevelYearsPost$Params, context?: HttpContext): Observable> {\r\n return apiLevelYearsPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelYearsPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelYearsPost(params?: ApiLevelYearsPost$Params, context?: HttpContext): Observable {\r\n return this.apiLevelYearsPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiLevelChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiLevelChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelChangeStatusPut.PATH = '/api/Level/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelDtoIEnumerablePagination } from '../../models/view-level-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiLevelGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiLevelGet(http: HttpClient, rootUrl: string, params?: ApiLevelGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelGet.PATH = '/api/Level';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelDtoIEnumerablePagination } from '../../models/view-level-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiLevelGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiLevelGet$Plain(http: HttpClient, rootUrl: string, params?: ApiLevelGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelGet$Plain.PATH = '/api/Level';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiLevelIdDelete(http: HttpClient, rootUrl: string, params: ApiLevelIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelIdDelete.PATH = '/api/Level/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelDto } from '../../models/view-level-dto';\r\n\r\nexport interface ApiLevelIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiLevelIdGet(http: HttpClient, rootUrl: string, params: ApiLevelIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelIdGet.PATH = '/api/Level/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelDto } from '../../models/view-level-dto';\r\n\r\nexport interface ApiLevelIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiLevelIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiLevelIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelIdGet$Plain.PATH = '/api/Level/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n}\r\n}\r\n\r\nexport function apiLevelIdPut(http: HttpClient, rootUrl: string, params: ApiLevelIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelIdPut.PATH = '/api/Level/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiLevelPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n}\r\n}\r\n\r\nexport function apiLevelPost(http: HttpClient, rootUrl: string, params?: ApiLevelPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiLevelPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiLevelPost.PATH = '/api/Level';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiLevelChangeStatusPut } from '../fn/level/api-level-change-status-put';\r\nimport { ApiLevelChangeStatusPut$Params } from '../fn/level/api-level-change-status-put';\r\nimport { apiLevelGet } from '../fn/level/api-level-get';\r\nimport { ApiLevelGet$Params } from '../fn/level/api-level-get';\r\nimport { apiLevelGet$Plain } from '../fn/level/api-level-get-plain';\r\nimport { ApiLevelGet$Plain$Params } from '../fn/level/api-level-get-plain';\r\nimport { apiLevelIdDelete } from '../fn/level/api-level-id-delete';\r\nimport { ApiLevelIdDelete$Params } from '../fn/level/api-level-id-delete';\r\nimport { apiLevelIdGet } from '../fn/level/api-level-id-get';\r\nimport { ApiLevelIdGet$Params } from '../fn/level/api-level-id-get';\r\nimport { apiLevelIdGet$Plain } from '../fn/level/api-level-id-get-plain';\r\nimport { ApiLevelIdGet$Plain$Params } from '../fn/level/api-level-id-get-plain';\r\nimport { apiLevelIdPut } from '../fn/level/api-level-id-put';\r\nimport { ApiLevelIdPut$Params } from '../fn/level/api-level-id-put';\r\nimport { apiLevelPost } from '../fn/level/api-level-post';\r\nimport { ApiLevelPost$Params } from '../fn/level/api-level-post';\r\nimport { ViewLevelDto } from '../models/view-level-dto';\r\nimport { ViewLevelDtoIEnumerablePagination } from '../models/view-level-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LevelService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiLevelGet()` */\r\n static readonly ApiLevelGetPath = '/api/Level';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelGet$Plain$Response(params?: ApiLevelGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiLevelGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelGet$Plain(params?: ApiLevelGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiLevelGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelGet$Response(params?: ApiLevelGet$Params, context?: HttpContext): Observable> {\r\n return apiLevelGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelGet(params?: ApiLevelGet$Params, context?: HttpContext): Observable {\r\n return this.apiLevelGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelPost()` */\r\n static readonly ApiLevelPostPath = '/api/Level';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelPost$Response(params?: ApiLevelPost$Params, context?: HttpContext): Observable> {\r\n return apiLevelPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelPost(params?: ApiLevelPost$Params, context?: HttpContext): Observable {\r\n return this.apiLevelPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelIdGet()` */\r\n static readonly ApiLevelIdGetPath = '/api/Level/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelIdGet$Plain$Response(params: ApiLevelIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiLevelIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelIdGet$Plain(params: ApiLevelIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiLevelIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelIdGet$Response(params: ApiLevelIdGet$Params, context?: HttpContext): Observable> {\r\n return apiLevelIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelIdGet(params: ApiLevelIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiLevelIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewLevelDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelIdPut()` */\r\n static readonly ApiLevelIdPutPath = '/api/Level/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelIdPut$Response(params: ApiLevelIdPut$Params, context?: HttpContext): Observable> {\r\n return apiLevelIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiLevelIdPut(params: ApiLevelIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiLevelIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelIdDelete()` */\r\n static readonly ApiLevelIdDeletePath = '/api/Level/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelIdDelete$Response(params: ApiLevelIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiLevelIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelIdDelete(params: ApiLevelIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiLevelIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiLevelChangeStatusPut()` */\r\n static readonly ApiLevelChangeStatusPutPath = '/api/Level/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiLevelChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelChangeStatusPut$Response(params?: ApiLevelChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiLevelChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiLevelChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiLevelChangeStatusPut(params?: ApiLevelChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiLevelChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoListPagination } from '../../models/notification-dto-list-pagination';\r\n\r\nexport interface ApiNotificationGetAdminNotifcationsGet$Params {\r\n pageNume?: number;\r\n pageSize?: number;\r\n}\r\n\r\nexport function apiNotificationGetAdminNotifcationsGet(http: HttpClient, rootUrl: string, params?: ApiNotificationGetAdminNotifcationsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationGetAdminNotifcationsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageNume', params.pageNume, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationGetAdminNotifcationsGet.PATH = '/api/Notification/GetAdminNotifcations';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoListPagination } from '../../models/notification-dto-list-pagination';\r\n\r\nexport interface ApiNotificationGetAdminNotifcationsGet$Plain$Params {\r\n pageNume?: number;\r\n pageSize?: number;\r\n}\r\n\r\nexport function apiNotificationGetAdminNotifcationsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiNotificationGetAdminNotifcationsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationGetAdminNotifcationsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageNume', params.pageNume, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationGetAdminNotifcationsGet$Plain.PATH = '/api/Notification/GetAdminNotifcations';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoListPagination } from '../../models/notification-dto-list-pagination';\r\n\r\nexport interface ApiNotificationGetStudentNotifcationsGet$Params {\r\n pageNume?: number;\r\n pageSize?: number;\r\n}\r\n\r\nexport function apiNotificationGetStudentNotifcationsGet(http: HttpClient, rootUrl: string, params?: ApiNotificationGetStudentNotifcationsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationGetStudentNotifcationsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageNume', params.pageNume, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationGetStudentNotifcationsGet.PATH = '/api/Notification/GetStudentNotifcations';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoListPagination } from '../../models/notification-dto-list-pagination';\r\n\r\nexport interface ApiNotificationGetStudentNotifcationsGet$Plain$Params {\r\n pageNume?: number;\r\n pageSize?: number;\r\n}\r\n\r\nexport function apiNotificationGetStudentNotifcationsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiNotificationGetStudentNotifcationsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationGetStudentNotifcationsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageNume', params.pageNume, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationGetStudentNotifcationsGet$Plain.PATH = '/api/Notification/GetStudentNotifcations';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoPagination } from '../../models/notification-dto-pagination';\r\nimport { NotificationType } from '../../models/notification-type';\r\n\r\nexport interface ApiNotificationReadAllNotificationPut$Params {\r\n type?: NotificationType;\r\n}\r\n\r\nexport function apiNotificationReadAllNotificationPut(http: HttpClient, rootUrl: string, params?: ApiNotificationReadAllNotificationPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationReadAllNotificationPut.PATH, 'put');\r\n if (params) {\r\n rb.query('type', params.type, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationReadAllNotificationPut.PATH = '/api/Notification/ReadAllNotification';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoPagination } from '../../models/notification-dto-pagination';\r\nimport { NotificationType } from '../../models/notification-type';\r\n\r\nexport interface ApiNotificationReadAllNotificationPut$Plain$Params {\r\n type?: NotificationType;\r\n}\r\n\r\nexport function apiNotificationReadAllNotificationPut$Plain(http: HttpClient, rootUrl: string, params?: ApiNotificationReadAllNotificationPut$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationReadAllNotificationPut$Plain.PATH, 'put');\r\n if (params) {\r\n rb.query('type', params.type, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationReadAllNotificationPut$Plain.PATH = '/api/Notification/ReadAllNotification';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoPagination } from '../../models/notification-dto-pagination';\r\n\r\nexport interface ApiNotificationReadNotificationPut$Params {\r\n notifId?: number;\r\n}\r\n\r\nexport function apiNotificationReadNotificationPut(http: HttpClient, rootUrl: string, params?: ApiNotificationReadNotificationPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationReadNotificationPut.PATH, 'put');\r\n if (params) {\r\n rb.query('notifId', params.notifId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationReadNotificationPut.PATH = '/api/Notification/ReadNotification';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { NotificationDtoPagination } from '../../models/notification-dto-pagination';\r\n\r\nexport interface ApiNotificationReadNotificationPut$Plain$Params {\r\n notifId?: number;\r\n}\r\n\r\nexport function apiNotificationReadNotificationPut$Plain(http: HttpClient, rootUrl: string, params?: ApiNotificationReadNotificationPut$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationReadNotificationPut$Plain.PATH, 'put');\r\n if (params) {\r\n rb.query('notifId', params.notifId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationReadNotificationPut$Plain.PATH = '/api/Notification/ReadNotification';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiNotificationUnReadNotificationCountGet$Params {\r\n}\r\n\r\nexport function apiNotificationUnReadNotificationCountGet(http: HttpClient, rootUrl: string, params?: ApiNotificationUnReadNotificationCountGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationUnReadNotificationCountGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: parseFloat(String((r as HttpResponse).body)) }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationUnReadNotificationCountGet.PATH = '/api/Notification/UnReadNotificationCount';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiNotificationUnReadNotificationCountGet$Plain$Params {\r\n}\r\n\r\nexport function apiNotificationUnReadNotificationCountGet$Plain(http: HttpClient, rootUrl: string, params?: ApiNotificationUnReadNotificationCountGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiNotificationUnReadNotificationCountGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: parseFloat(String((r as HttpResponse).body)) }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiNotificationUnReadNotificationCountGet$Plain.PATH = '/api/Notification/UnReadNotificationCount';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiNotificationGetAdminNotifcationsGet } from '../fn/notification/api-notification-get-admin-notifcations-get';\r\nimport { ApiNotificationGetAdminNotifcationsGet$Params } from '../fn/notification/api-notification-get-admin-notifcations-get';\r\nimport { apiNotificationGetAdminNotifcationsGet$Plain } from '../fn/notification/api-notification-get-admin-notifcations-get-plain';\r\nimport { ApiNotificationGetAdminNotifcationsGet$Plain$Params } from '../fn/notification/api-notification-get-admin-notifcations-get-plain';\r\nimport { apiNotificationGetStudentNotifcationsGet } from '../fn/notification/api-notification-get-student-notifcations-get';\r\nimport { ApiNotificationGetStudentNotifcationsGet$Params } from '../fn/notification/api-notification-get-student-notifcations-get';\r\nimport { apiNotificationGetStudentNotifcationsGet$Plain } from '../fn/notification/api-notification-get-student-notifcations-get-plain';\r\nimport { ApiNotificationGetStudentNotifcationsGet$Plain$Params } from '../fn/notification/api-notification-get-student-notifcations-get-plain';\r\nimport { apiNotificationReadAllNotificationPut } from '../fn/notification/api-notification-read-all-notification-put';\r\nimport { ApiNotificationReadAllNotificationPut$Params } from '../fn/notification/api-notification-read-all-notification-put';\r\nimport { apiNotificationReadAllNotificationPut$Plain } from '../fn/notification/api-notification-read-all-notification-put-plain';\r\nimport { ApiNotificationReadAllNotificationPut$Plain$Params } from '../fn/notification/api-notification-read-all-notification-put-plain';\r\nimport { apiNotificationReadNotificationPut } from '../fn/notification/api-notification-read-notification-put';\r\nimport { ApiNotificationReadNotificationPut$Params } from '../fn/notification/api-notification-read-notification-put';\r\nimport { apiNotificationReadNotificationPut$Plain } from '../fn/notification/api-notification-read-notification-put-plain';\r\nimport { ApiNotificationReadNotificationPut$Plain$Params } from '../fn/notification/api-notification-read-notification-put-plain';\r\nimport { apiNotificationUnReadNotificationCountGet } from '../fn/notification/api-notification-un-read-notification-count-get';\r\nimport { ApiNotificationUnReadNotificationCountGet$Params } from '../fn/notification/api-notification-un-read-notification-count-get';\r\nimport { apiNotificationUnReadNotificationCountGet$Plain } from '../fn/notification/api-notification-un-read-notification-count-get-plain';\r\nimport { ApiNotificationUnReadNotificationCountGet$Plain$Params } from '../fn/notification/api-notification-un-read-notification-count-get-plain';\r\nimport { NotificationDtoListPagination } from '../models/notification-dto-list-pagination';\r\nimport { NotificationDtoPagination } from '../models/notification-dto-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NotificationService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiNotificationGetAdminNotifcationsGet()` */\r\n static readonly ApiNotificationGetAdminNotifcationsGetPath = '/api/Notification/GetAdminNotifcations';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationGetAdminNotifcationsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetAdminNotifcationsGet$Plain$Response(params?: ApiNotificationGetAdminNotifcationsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiNotificationGetAdminNotifcationsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationGetAdminNotifcationsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetAdminNotifcationsGet$Plain(params?: ApiNotificationGetAdminNotifcationsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationGetAdminNotifcationsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationGetAdminNotifcationsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetAdminNotifcationsGet$Response(params?: ApiNotificationGetAdminNotifcationsGet$Params, context?: HttpContext): Observable> {\r\n return apiNotificationGetAdminNotifcationsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationGetAdminNotifcationsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetAdminNotifcationsGet(params?: ApiNotificationGetAdminNotifcationsGet$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationGetAdminNotifcationsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiNotificationGetStudentNotifcationsGet()` */\r\n static readonly ApiNotificationGetStudentNotifcationsGetPath = '/api/Notification/GetStudentNotifcations';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationGetStudentNotifcationsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetStudentNotifcationsGet$Plain$Response(params?: ApiNotificationGetStudentNotifcationsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiNotificationGetStudentNotifcationsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationGetStudentNotifcationsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetStudentNotifcationsGet$Plain(params?: ApiNotificationGetStudentNotifcationsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationGetStudentNotifcationsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationGetStudentNotifcationsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetStudentNotifcationsGet$Response(params?: ApiNotificationGetStudentNotifcationsGet$Params, context?: HttpContext): Observable> {\r\n return apiNotificationGetStudentNotifcationsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationGetStudentNotifcationsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationGetStudentNotifcationsGet(params?: ApiNotificationGetStudentNotifcationsGet$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationGetStudentNotifcationsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiNotificationUnReadNotificationCountGet()` */\r\n static readonly ApiNotificationUnReadNotificationCountGetPath = '/api/Notification/UnReadNotificationCount';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationUnReadNotificationCountGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationUnReadNotificationCountGet$Plain$Response(params?: ApiNotificationUnReadNotificationCountGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiNotificationUnReadNotificationCountGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationUnReadNotificationCountGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationUnReadNotificationCountGet$Plain(params?: ApiNotificationUnReadNotificationCountGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationUnReadNotificationCountGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): number => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationUnReadNotificationCountGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationUnReadNotificationCountGet$Response(params?: ApiNotificationUnReadNotificationCountGet$Params, context?: HttpContext): Observable> {\r\n return apiNotificationUnReadNotificationCountGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationUnReadNotificationCountGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationUnReadNotificationCountGet(params?: ApiNotificationUnReadNotificationCountGet$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationUnReadNotificationCountGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): number => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiNotificationReadAllNotificationPut()` */\r\n static readonly ApiNotificationReadAllNotificationPutPath = '/api/Notification/ReadAllNotification';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationReadAllNotificationPut$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadAllNotificationPut$Plain$Response(params?: ApiNotificationReadAllNotificationPut$Plain$Params, context?: HttpContext): Observable> {\r\n return apiNotificationReadAllNotificationPut$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationReadAllNotificationPut$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadAllNotificationPut$Plain(params?: ApiNotificationReadAllNotificationPut$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationReadAllNotificationPut$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationReadAllNotificationPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadAllNotificationPut$Response(params?: ApiNotificationReadAllNotificationPut$Params, context?: HttpContext): Observable> {\r\n return apiNotificationReadAllNotificationPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationReadAllNotificationPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadAllNotificationPut(params?: ApiNotificationReadAllNotificationPut$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationReadAllNotificationPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiNotificationReadNotificationPut()` */\r\n static readonly ApiNotificationReadNotificationPutPath = '/api/Notification/ReadNotification';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationReadNotificationPut$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadNotificationPut$Plain$Response(params?: ApiNotificationReadNotificationPut$Plain$Params, context?: HttpContext): Observable> {\r\n return apiNotificationReadNotificationPut$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationReadNotificationPut$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadNotificationPut$Plain(params?: ApiNotificationReadNotificationPut$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationReadNotificationPut$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiNotificationReadNotificationPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadNotificationPut$Response(params?: ApiNotificationReadNotificationPut$Params, context?: HttpContext): Observable> {\r\n return apiNotificationReadNotificationPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiNotificationReadNotificationPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiNotificationReadNotificationPut(params?: ApiNotificationReadNotificationPut$Params, context?: HttpContext): Observable {\r\n return this.apiNotificationReadNotificationPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): NotificationDtoPagination => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentStatus } from '../../models/student-status';\r\n\r\nexport interface ApiParentAcceptParentStudentPost$Params {\r\n ParentId?: string;\r\n status?: StudentStatus;\r\n}\r\n\r\nexport function apiParentAcceptParentStudentPost(http: HttpClient, rootUrl: string, params?: ApiParentAcceptParentStudentPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentAcceptParentStudentPost.PATH, 'post');\r\n if (params) {\r\n rb.query('ParentId', params.ParentId, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentAcceptParentStudentPost.PATH = '/api/Parent/AcceptParentStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiParentAddParentStudentRequestPost$Params {\r\n StId?: string;\r\n}\r\n\r\nexport function apiParentAddParentStudentRequestPost(http: HttpClient, rootUrl: string, params?: ApiParentAddParentStudentRequestPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentAddParentStudentRequestPost.PATH, 'post');\r\n if (params) {\r\n rb.query('StId', params.StId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentAddParentStudentRequestPost.PATH = '/api/Parent/AddParentStudentRequest';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiParentGetParentRequestsForParentGet$Params {\r\n}\r\n\r\nexport function apiParentGetParentRequestsForParentGet(http: HttpClient, rootUrl: string, params?: ApiParentGetParentRequestsForParentGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetParentRequestsForParentGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiParentGetParentRequestsForParentGet.PATH = '/api/Parent/GetParentRequestsForParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiParentGetParentRequestsForParentGet$Plain$Params {\r\n}\r\n\r\nexport function apiParentGetParentRequestsForParentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiParentGetParentRequestsForParentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetParentRequestsForParentGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiParentGetParentRequestsForParentGet$Plain.PATH = '/api/Parent/GetParentRequestsForParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDto } from '../../models/view-student-dto';\r\n\r\nexport interface ApiParentGetStudentByCodeParentGet$Params {\r\n code?: string;\r\n}\r\n\r\nexport function apiParentGetStudentByCodeParentGet(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentByCodeParentGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentByCodeParentGet.PATH, 'get');\r\n if (params) {\r\n rb.query('code', params.code, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentByCodeParentGet.PATH = '/api/Parent/GetStudentByCodeParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDto } from '../../models/view-student-dto';\r\n\r\nexport interface ApiParentGetStudentByCodeParentGet$Plain$Params {\r\n code?: string;\r\n}\r\n\r\nexport function apiParentGetStudentByCodeParentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentByCodeParentGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentByCodeParentGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('code', params.code, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentByCodeParentGet$Plain.PATH = '/api/Parent/GetStudentByCodeParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentParentDto } from '../../models/view-student-parent-dto';\r\n\r\nexport interface ApiParentGetStudentByIdGet$Params {\r\n id?: string;\r\n}\r\n\r\nexport function apiParentGetStudentByIdGet(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentByIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentByIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentByIdGet.PATH = '/api/Parent/getStudentById';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentParentDto } from '../../models/view-student-parent-dto';\r\n\r\nexport interface ApiParentGetStudentByIdGet$Plain$Params {\r\n id?: string;\r\n}\r\n\r\nexport function apiParentGetStudentByIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentByIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentByIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentByIdGet$Plain.PATH = '/api/Parent/getStudentById';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentDashboardDataDto } from '../../models/student-dashboard-data-dto';\r\n\r\nexport interface ApiParentGetStudentDashboardDataGet$Params {\r\n studentId?: string;\r\n}\r\n\r\nexport function apiParentGetStudentDashboardDataGet(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentDashboardDataGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentDashboardDataGet.PATH, 'get');\r\n if (params) {\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentDashboardDataGet.PATH = '/api/Parent/GetStudentDashboardData';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentDashboardDataDto } from '../../models/student-dashboard-data-dto';\r\n\r\nexport interface ApiParentGetStudentDashboardDataGet$Plain$Params {\r\n studentId?: string;\r\n}\r\n\r\nexport function apiParentGetStudentDashboardDataGet$Plain(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentDashboardDataGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentDashboardDataGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentDashboardDataGet$Plain.PATH = '/api/Parent/GetStudentDashboardData';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDto } from '../../models/view-student-dto';\r\n\r\nexport interface ApiParentGetStudentGet$Params {\r\n}\r\n\r\nexport function apiParentGetStudentGet(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentGet.PATH = '/api/Parent/GetStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDto } from '../../models/view-student-dto';\r\n\r\nexport interface ApiParentGetStudentGet$Plain$Params {\r\n}\r\n\r\nexport function apiParentGetStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiParentGetStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiParentGetStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiParentGetStudentGet$Plain.PATH = '/api/Parent/GetStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\nimport { RegisterDto } from '../../models/register-dto';\r\n\r\nexport interface ApiParentRegisterParentPost$Params {\r\n body?: RegisterDto\r\n}\r\n\r\nexport function apiParentRegisterParentPost(http: HttpClient, rootUrl: string, params?: ApiParentRegisterParentPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentRegisterParentPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentRegisterParentPost.PATH = '/api/Parent/RegisterParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ApplicationUser } from '../../models/application-user';\r\nimport { RegisterDto } from '../../models/register-dto';\r\n\r\nexport interface ApiParentRegisterParentPost$Plain$Params {\r\n body?: RegisterDto\r\n}\r\n\r\nexport function apiParentRegisterParentPost$Plain(http: HttpClient, rootUrl: string, params?: ApiParentRegisterParentPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiParentRegisterParentPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiParentRegisterParentPost$Plain.PATH = '/api/Parent/RegisterParent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiParentAcceptParentStudentPost } from '../fn/parent/api-parent-accept-parent-student-post';\r\nimport { ApiParentAcceptParentStudentPost$Params } from '../fn/parent/api-parent-accept-parent-student-post';\r\nimport { apiParentAddParentStudentRequestPost } from '../fn/parent/api-parent-add-parent-student-request-post';\r\nimport { ApiParentAddParentStudentRequestPost$Params } from '../fn/parent/api-parent-add-parent-student-request-post';\r\nimport { apiParentGetParentRequestsForParentGet } from '../fn/parent/api-parent-get-parent-requests-for-parent-get';\r\nimport { ApiParentGetParentRequestsForParentGet$Params } from '../fn/parent/api-parent-get-parent-requests-for-parent-get';\r\nimport { apiParentGetParentRequestsForParentGet$Plain } from '../fn/parent/api-parent-get-parent-requests-for-parent-get-plain';\r\nimport { ApiParentGetParentRequestsForParentGet$Plain$Params } from '../fn/parent/api-parent-get-parent-requests-for-parent-get-plain';\r\nimport { apiParentGetStudentByCodeParentGet } from '../fn/parent/api-parent-get-student-by-code-parent-get';\r\nimport { ApiParentGetStudentByCodeParentGet$Params } from '../fn/parent/api-parent-get-student-by-code-parent-get';\r\nimport { apiParentGetStudentByCodeParentGet$Plain } from '../fn/parent/api-parent-get-student-by-code-parent-get-plain';\r\nimport { ApiParentGetStudentByCodeParentGet$Plain$Params } from '../fn/parent/api-parent-get-student-by-code-parent-get-plain';\r\nimport { apiParentGetStudentByIdGet } from '../fn/parent/api-parent-get-student-by-id-get';\r\nimport { ApiParentGetStudentByIdGet$Params } from '../fn/parent/api-parent-get-student-by-id-get';\r\nimport { apiParentGetStudentByIdGet$Plain } from '../fn/parent/api-parent-get-student-by-id-get-plain';\r\nimport { ApiParentGetStudentByIdGet$Plain$Params } from '../fn/parent/api-parent-get-student-by-id-get-plain';\r\nimport { apiParentGetStudentDashboardDataGet } from '../fn/parent/api-parent-get-student-dashboard-data-get';\r\nimport { ApiParentGetStudentDashboardDataGet$Params } from '../fn/parent/api-parent-get-student-dashboard-data-get';\r\nimport { apiParentGetStudentDashboardDataGet$Plain } from '../fn/parent/api-parent-get-student-dashboard-data-get-plain';\r\nimport { ApiParentGetStudentDashboardDataGet$Plain$Params } from '../fn/parent/api-parent-get-student-dashboard-data-get-plain';\r\nimport { apiParentGetStudentGet } from '../fn/parent/api-parent-get-student-get';\r\nimport { ApiParentGetStudentGet$Params } from '../fn/parent/api-parent-get-student-get';\r\nimport { apiParentGetStudentGet$Plain } from '../fn/parent/api-parent-get-student-get-plain';\r\nimport { ApiParentGetStudentGet$Plain$Params } from '../fn/parent/api-parent-get-student-get-plain';\r\nimport { apiParentRegisterParentPost } from '../fn/parent/api-parent-register-parent-post';\r\nimport { ApiParentRegisterParentPost$Params } from '../fn/parent/api-parent-register-parent-post';\r\nimport { apiParentRegisterParentPost$Plain } from '../fn/parent/api-parent-register-parent-post-plain';\r\nimport { ApiParentRegisterParentPost$Plain$Params } from '../fn/parent/api-parent-register-parent-post-plain';\r\nimport { ApplicationUser } from '../models/application-user';\r\nimport { StudentDashboardDataDto } from '../models/student-dashboard-data-dto';\r\nimport { UserDto } from '../models/user-dto';\r\nimport { ViewStudentDto } from '../models/view-student-dto';\r\nimport { ViewStudentParentDto } from '../models/view-student-parent-dto';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ParentService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiParentRegisterParentPost()` */\r\n static readonly ApiParentRegisterParentPostPath = '/api/Parent/RegisterParent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentRegisterParentPost$Plain()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiParentRegisterParentPost$Plain$Response(params?: ApiParentRegisterParentPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiParentRegisterParentPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentRegisterParentPost$Plain$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiParentRegisterParentPost$Plain(params?: ApiParentRegisterParentPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiParentRegisterParentPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentRegisterParentPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiParentRegisterParentPost$Response(params?: ApiParentRegisterParentPost$Params, context?: HttpContext): Observable> {\r\n return apiParentRegisterParentPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentRegisterParentPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiParentRegisterParentPost(params?: ApiParentRegisterParentPost$Params, context?: HttpContext): Observable {\r\n return this.apiParentRegisterParentPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ApplicationUser => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentAddParentStudentRequestPost()` */\r\n static readonly ApiParentAddParentStudentRequestPostPath = '/api/Parent/AddParentStudentRequest';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentAddParentStudentRequestPost()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentAddParentStudentRequestPost$Response(params?: ApiParentAddParentStudentRequestPost$Params, context?: HttpContext): Observable> {\r\n return apiParentAddParentStudentRequestPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentAddParentStudentRequestPost$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentAddParentStudentRequestPost(params?: ApiParentAddParentStudentRequestPost$Params, context?: HttpContext): Observable {\r\n return this.apiParentAddParentStudentRequestPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentAcceptParentStudentPost()` */\r\n static readonly ApiParentAcceptParentStudentPostPath = '/api/Parent/AcceptParentStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentAcceptParentStudentPost()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentAcceptParentStudentPost$Response(params?: ApiParentAcceptParentStudentPost$Params, context?: HttpContext): Observable> {\r\n return apiParentAcceptParentStudentPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentAcceptParentStudentPost$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentAcceptParentStudentPost(params?: ApiParentAcceptParentStudentPost$Params, context?: HttpContext): Observable {\r\n return this.apiParentAcceptParentStudentPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentGetParentRequestsForParentGet()` */\r\n static readonly ApiParentGetParentRequestsForParentGetPath = '/api/Parent/GetParentRequestsForParent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetParentRequestsForParentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetParentRequestsForParentGet$Plain$Response(params?: ApiParentGetParentRequestsForParentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiParentGetParentRequestsForParentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetParentRequestsForParentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetParentRequestsForParentGet$Plain(params?: ApiParentGetParentRequestsForParentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiParentGetParentRequestsForParentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetParentRequestsForParentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetParentRequestsForParentGet$Response(params?: ApiParentGetParentRequestsForParentGet$Params, context?: HttpContext): Observable>> {\r\n return apiParentGetParentRequestsForParentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetParentRequestsForParentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetParentRequestsForParentGet(params?: ApiParentGetParentRequestsForParentGet$Params, context?: HttpContext): Observable> {\r\n return this.apiParentGetParentRequestsForParentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentGetStudentGet()` */\r\n static readonly ApiParentGetStudentGetPath = '/api/Parent/GetStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentGet$Plain$Response(params?: ApiParentGetStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiParentGetStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentGet$Plain(params?: ApiParentGetStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiParentGetStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentGet$Response(params?: ApiParentGetStudentGet$Params, context?: HttpContext): Observable>> {\r\n return apiParentGetStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentGet(params?: ApiParentGetStudentGet$Params, context?: HttpContext): Observable> {\r\n return this.apiParentGetStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentGetStudentDashboardDataGet()` */\r\n static readonly ApiParentGetStudentDashboardDataGetPath = '/api/Parent/GetStudentDashboardData';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentDashboardDataGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentDashboardDataGet$Plain$Response(params?: ApiParentGetStudentDashboardDataGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiParentGetStudentDashboardDataGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentDashboardDataGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentDashboardDataGet$Plain(params?: ApiParentGetStudentDashboardDataGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiParentGetStudentDashboardDataGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentDashboardDataDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentDashboardDataGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentDashboardDataGet$Response(params?: ApiParentGetStudentDashboardDataGet$Params, context?: HttpContext): Observable> {\r\n return apiParentGetStudentDashboardDataGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentDashboardDataGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentDashboardDataGet(params?: ApiParentGetStudentDashboardDataGet$Params, context?: HttpContext): Observable {\r\n return this.apiParentGetStudentDashboardDataGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentDashboardDataDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentGetStudentByIdGet()` */\r\n static readonly ApiParentGetStudentByIdGetPath = '/api/Parent/getStudentById';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentByIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByIdGet$Plain$Response(params?: ApiParentGetStudentByIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiParentGetStudentByIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentByIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByIdGet$Plain(params?: ApiParentGetStudentByIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiParentGetStudentByIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentParentDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentByIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByIdGet$Response(params?: ApiParentGetStudentByIdGet$Params, context?: HttpContext): Observable> {\r\n return apiParentGetStudentByIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentByIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByIdGet(params?: ApiParentGetStudentByIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiParentGetStudentByIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentParentDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiParentGetStudentByCodeParentGet()` */\r\n static readonly ApiParentGetStudentByCodeParentGetPath = '/api/Parent/GetStudentByCodeParent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentByCodeParentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByCodeParentGet$Plain$Response(params?: ApiParentGetStudentByCodeParentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiParentGetStudentByCodeParentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentByCodeParentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByCodeParentGet$Plain(params?: ApiParentGetStudentByCodeParentGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiParentGetStudentByCodeParentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiParentGetStudentByCodeParentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByCodeParentGet$Response(params?: ApiParentGetStudentByCodeParentGet$Params, context?: HttpContext): Observable> {\r\n return apiParentGetStudentByCodeParentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiParentGetStudentByCodeParentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiParentGetStudentByCodeParentGet(params?: ApiParentGetStudentByCodeParentGet$Params, context?: HttpContext): Observable {\r\n return this.apiParentGetStudentByCodeParentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDto => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddEditChoiceDto } from '../../models/add-edit-choice-dto';\r\nimport { QuestionType } from '../../models/question-type';\r\n\r\nexport interface ApiQuestionAddEditQuestionDtoPut$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Body'?: string;\r\n'Type'?: QuestionType;\r\n'Img'?: Blob;\r\n'Degree'?: number;\r\n'ArticleRightAnswer'?: string;\r\n'ExamId'?: number;\r\n'Sort'?: number;\r\n'Choises'?: Array;\r\n}\r\n}\r\n\r\nexport function apiQuestionAddEditQuestionDtoPut(http: HttpClient, rootUrl: string, params?: ApiQuestionAddEditQuestionDtoPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionAddEditQuestionDtoPut.PATH, 'put');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionAddEditQuestionDtoPut.PATH = '/api/Question/AddEditQuestionDto';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDtoIEnumerablePagination } from '../../models/view-question-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiQuestionGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiQuestionGet(http: HttpClient, rootUrl: string, params?: ApiQuestionGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionGet.PATH = '/api/Question';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDtoIEnumerablePagination } from '../../models/view-question-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiQuestionGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiQuestionGet$Plain(http: HttpClient, rootUrl: string, params?: ApiQuestionGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionGet$Plain.PATH = '/api/Question';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiQuestionIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiQuestionIdDelete(http: HttpClient, rootUrl: string, params: ApiQuestionIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionIdDelete.PATH = '/api/Question/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDto } from '../../models/view-question-dto';\r\n\r\nexport interface ApiQuestionIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiQuestionIdGet(http: HttpClient, rootUrl: string, params: ApiQuestionIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionIdGet.PATH = '/api/Question/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewQuestionDto } from '../../models/view-question-dto';\r\n\r\nexport interface ApiQuestionIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiQuestionIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiQuestionIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionIdGet$Plain.PATH = '/api/Question/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddEditChoiceDto } from '../../models/add-edit-choice-dto';\r\nimport { QuestionType } from '../../models/question-type';\r\n\r\nexport interface ApiQuestionPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Body'?: string;\r\n'Type'?: QuestionType;\r\n'Img'?: Blob;\r\n'Degree'?: number;\r\n'ArticleRightAnswer'?: string;\r\n'ExamId'?: number;\r\n'Sort'?: number;\r\n'Choises'?: Array;\r\n}\r\n}\r\n\r\nexport function apiQuestionPost(http: HttpClient, rootUrl: string, params?: ApiQuestionPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiQuestionPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiQuestionPost.PATH = '/api/Question';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiQuestionAddEditQuestionDtoPut } from '../fn/question/api-question-add-edit-question-dto-put';\r\nimport { ApiQuestionAddEditQuestionDtoPut$Params } from '../fn/question/api-question-add-edit-question-dto-put';\r\nimport { apiQuestionGet } from '../fn/question/api-question-get';\r\nimport { ApiQuestionGet$Params } from '../fn/question/api-question-get';\r\nimport { apiQuestionGet$Plain } from '../fn/question/api-question-get-plain';\r\nimport { ApiQuestionGet$Plain$Params } from '../fn/question/api-question-get-plain';\r\nimport { apiQuestionIdDelete } from '../fn/question/api-question-id-delete';\r\nimport { ApiQuestionIdDelete$Params } from '../fn/question/api-question-id-delete';\r\nimport { apiQuestionIdGet } from '../fn/question/api-question-id-get';\r\nimport { ApiQuestionIdGet$Params } from '../fn/question/api-question-id-get';\r\nimport { apiQuestionIdGet$Plain } from '../fn/question/api-question-id-get-plain';\r\nimport { ApiQuestionIdGet$Plain$Params } from '../fn/question/api-question-id-get-plain';\r\nimport { apiQuestionPost } from '../fn/question/api-question-post';\r\nimport { ApiQuestionPost$Params } from '../fn/question/api-question-post';\r\nimport { ViewQuestionDto } from '../models/view-question-dto';\r\nimport { ViewQuestionDtoIEnumerablePagination } from '../models/view-question-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class QuestionService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiQuestionGet()` */\r\n static readonly ApiQuestionGetPath = '/api/Question';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionGet$Plain$Response(params?: ApiQuestionGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiQuestionGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionGet$Plain(params?: ApiQuestionGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewQuestionDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionGet$Response(params?: ApiQuestionGet$Params, context?: HttpContext): Observable> {\r\n return apiQuestionGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionGet(params?: ApiQuestionGet$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewQuestionDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiQuestionPost()` */\r\n static readonly ApiQuestionPostPath = '/api/Question';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiQuestionPost$Response(params?: ApiQuestionPost$Params, context?: HttpContext): Observable> {\r\n return apiQuestionPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiQuestionPost(params?: ApiQuestionPost$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiQuestionIdGet()` */\r\n static readonly ApiQuestionIdGetPath = '/api/Question/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionIdGet$Plain$Response(params: ApiQuestionIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiQuestionIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionIdGet$Plain(params: ApiQuestionIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewQuestionDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionIdGet$Response(params: ApiQuestionIdGet$Params, context?: HttpContext): Observable> {\r\n return apiQuestionIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionIdGet(params: ApiQuestionIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewQuestionDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiQuestionIdDelete()` */\r\n static readonly ApiQuestionIdDeletePath = '/api/Question/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionIdDelete$Response(params: ApiQuestionIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiQuestionIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiQuestionIdDelete(params: ApiQuestionIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiQuestionAddEditQuestionDtoPut()` */\r\n static readonly ApiQuestionAddEditQuestionDtoPutPath = '/api/Question/AddEditQuestionDto';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiQuestionAddEditQuestionDtoPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiQuestionAddEditQuestionDtoPut$Response(params?: ApiQuestionAddEditQuestionDtoPut$Params, context?: HttpContext): Observable> {\r\n return apiQuestionAddEditQuestionDtoPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiQuestionAddEditQuestionDtoPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiQuestionAddEditQuestionDtoPut(params?: ApiQuestionAddEditQuestionDtoPut$Params, context?: HttpContext): Observable {\r\n return this.apiQuestionAddEditQuestionDtoPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateCourseDtoIEnumerablePagination } from '../../models/view-rate-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiRateCourseGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiRateCourseGet(http: HttpClient, rootUrl: string, params?: ApiRateCourseGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateCourseGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateCourseGet.PATH = '/api/RateCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateCourseDtoIEnumerablePagination } from '../../models/view-rate-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiRateCourseGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiRateCourseGet$Plain(http: HttpClient, rootUrl: string, params?: ApiRateCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateCourseGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateCourseGet$Plain.PATH = '/api/RateCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiRateCourseIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateCourseIdDelete(http: HttpClient, rootUrl: string, params: ApiRateCourseIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateCourseIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateCourseIdDelete.PATH = '/api/RateCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateCourseDto } from '../../models/view-rate-course-dto';\r\n\r\nexport interface ApiRateCourseIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateCourseIdGet(http: HttpClient, rootUrl: string, params: ApiRateCourseIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateCourseIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateCourseIdGet.PATH = '/api/RateCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateCourseDto } from '../../models/view-rate-course-dto';\r\n\r\nexport interface ApiRateCourseIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateCourseIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiRateCourseIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateCourseIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateCourseIdGet$Plain.PATH = '/api/RateCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiRateCoursePost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'RateNumber'?: number;\r\n'Status'?: string;\r\n'CourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiRateCoursePost(http: HttpClient, rootUrl: string, params?: ApiRateCoursePost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateCoursePost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateCoursePost.PATH = '/api/RateCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiRateCourseGet } from '../fn/rate-course/api-rate-course-get';\r\nimport { ApiRateCourseGet$Params } from '../fn/rate-course/api-rate-course-get';\r\nimport { apiRateCourseGet$Plain } from '../fn/rate-course/api-rate-course-get-plain';\r\nimport { ApiRateCourseGet$Plain$Params } from '../fn/rate-course/api-rate-course-get-plain';\r\nimport { apiRateCourseIdDelete } from '../fn/rate-course/api-rate-course-id-delete';\r\nimport { ApiRateCourseIdDelete$Params } from '../fn/rate-course/api-rate-course-id-delete';\r\nimport { apiRateCourseIdGet } from '../fn/rate-course/api-rate-course-id-get';\r\nimport { ApiRateCourseIdGet$Params } from '../fn/rate-course/api-rate-course-id-get';\r\nimport { apiRateCourseIdGet$Plain } from '../fn/rate-course/api-rate-course-id-get-plain';\r\nimport { ApiRateCourseIdGet$Plain$Params } from '../fn/rate-course/api-rate-course-id-get-plain';\r\nimport { apiRateCoursePost } from '../fn/rate-course/api-rate-course-post';\r\nimport { ApiRateCoursePost$Params } from '../fn/rate-course/api-rate-course-post';\r\nimport { ViewRateCourseDto } from '../models/view-rate-course-dto';\r\nimport { ViewRateCourseDtoIEnumerablePagination } from '../models/view-rate-course-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RateCourseService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiRateCourseGet()` */\r\n static readonly ApiRateCourseGetPath = '/api/RateCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateCourseGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseGet$Plain$Response(params?: ApiRateCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiRateCourseGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateCourseGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseGet$Plain(params?: ApiRateCourseGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiRateCourseGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateCourseGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseGet$Response(params?: ApiRateCourseGet$Params, context?: HttpContext): Observable> {\r\n return apiRateCourseGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateCourseGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseGet(params?: ApiRateCourseGet$Params, context?: HttpContext): Observable {\r\n return this.apiRateCourseGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateCoursePost()` */\r\n static readonly ApiRateCoursePostPath = '/api/RateCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateCoursePost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiRateCoursePost$Response(params?: ApiRateCoursePost$Params, context?: HttpContext): Observable> {\r\n return apiRateCoursePost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateCoursePost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiRateCoursePost(params?: ApiRateCoursePost$Params, context?: HttpContext): Observable {\r\n return this.apiRateCoursePost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateCourseIdGet()` */\r\n static readonly ApiRateCourseIdGetPath = '/api/RateCourse/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateCourseIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseIdGet$Plain$Response(params: ApiRateCourseIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiRateCourseIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateCourseIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseIdGet$Plain(params: ApiRateCourseIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiRateCourseIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateCourseDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateCourseIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseIdGet$Response(params: ApiRateCourseIdGet$Params, context?: HttpContext): Observable> {\r\n return apiRateCourseIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateCourseIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseIdGet(params: ApiRateCourseIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiRateCourseIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateCourseDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateCourseIdDelete()` */\r\n static readonly ApiRateCourseIdDeletePath = '/api/RateCourse/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateCourseIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseIdDelete$Response(params: ApiRateCourseIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiRateCourseIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateCourseIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateCourseIdDelete(params: ApiRateCourseIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiRateCourseIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateTeacherDtoIEnumerablePagination } from '../../models/view-rate-teacher-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiRateTeacherGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiRateTeacherGet(http: HttpClient, rootUrl: string, params?: ApiRateTeacherGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateTeacherGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateTeacherGet.PATH = '/api/RateTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateTeacherDtoIEnumerablePagination } from '../../models/view-rate-teacher-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiRateTeacherGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiRateTeacherGet$Plain(http: HttpClient, rootUrl: string, params?: ApiRateTeacherGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateTeacherGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateTeacherGet$Plain.PATH = '/api/RateTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiRateTeacherIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateTeacherIdDelete(http: HttpClient, rootUrl: string, params: ApiRateTeacherIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateTeacherIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateTeacherIdDelete.PATH = '/api/RateTeacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateTeacherDto } from '../../models/view-rate-teacher-dto';\r\n\r\nexport interface ApiRateTeacherIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateTeacherIdGet(http: HttpClient, rootUrl: string, params: ApiRateTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateTeacherIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateTeacherIdGet.PATH = '/api/RateTeacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateTeacherDto } from '../../models/view-rate-teacher-dto';\r\n\r\nexport interface ApiRateTeacherIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateTeacherIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiRateTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateTeacherIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateTeacherIdGet$Plain.PATH = '/api/RateTeacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiRateTeacherPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'RateNumber'?: number;\r\n'Status'?: string;\r\n'TeacherId'?: number;\r\n}\r\n}\r\n\r\nexport function apiRateTeacherPost(http: HttpClient, rootUrl: string, params?: ApiRateTeacherPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateTeacherPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateTeacherPost.PATH = '/api/RateTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiRateTeacherGet } from '../fn/rate-teacher/api-rate-teacher-get';\r\nimport { ApiRateTeacherGet$Params } from '../fn/rate-teacher/api-rate-teacher-get';\r\nimport { apiRateTeacherGet$Plain } from '../fn/rate-teacher/api-rate-teacher-get-plain';\r\nimport { ApiRateTeacherGet$Plain$Params } from '../fn/rate-teacher/api-rate-teacher-get-plain';\r\nimport { apiRateTeacherIdDelete } from '../fn/rate-teacher/api-rate-teacher-id-delete';\r\nimport { ApiRateTeacherIdDelete$Params } from '../fn/rate-teacher/api-rate-teacher-id-delete';\r\nimport { apiRateTeacherIdGet } from '../fn/rate-teacher/api-rate-teacher-id-get';\r\nimport { ApiRateTeacherIdGet$Params } from '../fn/rate-teacher/api-rate-teacher-id-get';\r\nimport { apiRateTeacherIdGet$Plain } from '../fn/rate-teacher/api-rate-teacher-id-get-plain';\r\nimport { ApiRateTeacherIdGet$Plain$Params } from '../fn/rate-teacher/api-rate-teacher-id-get-plain';\r\nimport { apiRateTeacherPost } from '../fn/rate-teacher/api-rate-teacher-post';\r\nimport { ApiRateTeacherPost$Params } from '../fn/rate-teacher/api-rate-teacher-post';\r\nimport { ViewRateTeacherDto } from '../models/view-rate-teacher-dto';\r\nimport { ViewRateTeacherDtoIEnumerablePagination } from '../models/view-rate-teacher-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RateTeacherService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiRateTeacherGet()` */\r\n static readonly ApiRateTeacherGetPath = '/api/RateTeacher';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateTeacherGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherGet$Plain$Response(params?: ApiRateTeacherGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiRateTeacherGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateTeacherGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherGet$Plain(params?: ApiRateTeacherGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiRateTeacherGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateTeacherDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateTeacherGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherGet$Response(params?: ApiRateTeacherGet$Params, context?: HttpContext): Observable> {\r\n return apiRateTeacherGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateTeacherGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherGet(params?: ApiRateTeacherGet$Params, context?: HttpContext): Observable {\r\n return this.apiRateTeacherGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateTeacherDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateTeacherPost()` */\r\n static readonly ApiRateTeacherPostPath = '/api/RateTeacher';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateTeacherPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiRateTeacherPost$Response(params?: ApiRateTeacherPost$Params, context?: HttpContext): Observable> {\r\n return apiRateTeacherPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateTeacherPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiRateTeacherPost(params?: ApiRateTeacherPost$Params, context?: HttpContext): Observable {\r\n return this.apiRateTeacherPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateTeacherIdGet()` */\r\n static readonly ApiRateTeacherIdGetPath = '/api/RateTeacher/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateTeacherIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherIdGet$Plain$Response(params: ApiRateTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiRateTeacherIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateTeacherIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherIdGet$Plain(params: ApiRateTeacherIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiRateTeacherIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateTeacherDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateTeacherIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherIdGet$Response(params: ApiRateTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n return apiRateTeacherIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateTeacherIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherIdGet(params: ApiRateTeacherIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiRateTeacherIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateTeacherDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateTeacherIdDelete()` */\r\n static readonly ApiRateTeacherIdDeletePath = '/api/RateTeacher/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateTeacherIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherIdDelete$Response(params: ApiRateTeacherIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiRateTeacherIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateTeacherIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateTeacherIdDelete(params: ApiRateTeacherIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiRateTeacherIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateVideoDtoIEnumerablePagination } from '../../models/view-rate-video-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiRateVideoGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiRateVideoGet(http: HttpClient, rootUrl: string, params?: ApiRateVideoGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateVideoGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateVideoGet.PATH = '/api/RateVideo';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateVideoDtoIEnumerablePagination } from '../../models/view-rate-video-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiRateVideoGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiRateVideoGet$Plain(http: HttpClient, rootUrl: string, params?: ApiRateVideoGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateVideoGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateVideoGet$Plain.PATH = '/api/RateVideo';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiRateVideoIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateVideoIdDelete(http: HttpClient, rootUrl: string, params: ApiRateVideoIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateVideoIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateVideoIdDelete.PATH = '/api/RateVideo/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateVideoDto } from '../../models/view-rate-video-dto';\r\n\r\nexport interface ApiRateVideoIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateVideoIdGet(http: HttpClient, rootUrl: string, params: ApiRateVideoIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateVideoIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateVideoIdGet.PATH = '/api/RateVideo/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewRateVideoDto } from '../../models/view-rate-video-dto';\r\n\r\nexport interface ApiRateVideoIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiRateVideoIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiRateVideoIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateVideoIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateVideoIdGet$Plain.PATH = '/api/RateVideo/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiRateVideoPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'RateNumber'?: number;\r\n'Status'?: string;\r\n'VideoCourseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiRateVideoPost(http: HttpClient, rootUrl: string, params?: ApiRateVideoPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiRateVideoPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiRateVideoPost.PATH = '/api/RateVideo';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiRateVideoGet } from '../fn/rate-video/api-rate-video-get';\r\nimport { ApiRateVideoGet$Params } from '../fn/rate-video/api-rate-video-get';\r\nimport { apiRateVideoGet$Plain } from '../fn/rate-video/api-rate-video-get-plain';\r\nimport { ApiRateVideoGet$Plain$Params } from '../fn/rate-video/api-rate-video-get-plain';\r\nimport { apiRateVideoIdDelete } from '../fn/rate-video/api-rate-video-id-delete';\r\nimport { ApiRateVideoIdDelete$Params } from '../fn/rate-video/api-rate-video-id-delete';\r\nimport { apiRateVideoIdGet } from '../fn/rate-video/api-rate-video-id-get';\r\nimport { ApiRateVideoIdGet$Params } from '../fn/rate-video/api-rate-video-id-get';\r\nimport { apiRateVideoIdGet$Plain } from '../fn/rate-video/api-rate-video-id-get-plain';\r\nimport { ApiRateVideoIdGet$Plain$Params } from '../fn/rate-video/api-rate-video-id-get-plain';\r\nimport { apiRateVideoPost } from '../fn/rate-video/api-rate-video-post';\r\nimport { ApiRateVideoPost$Params } from '../fn/rate-video/api-rate-video-post';\r\nimport { ViewRateVideoDto } from '../models/view-rate-video-dto';\r\nimport { ViewRateVideoDtoIEnumerablePagination } from '../models/view-rate-video-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RateVideoService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiRateVideoGet()` */\r\n static readonly ApiRateVideoGetPath = '/api/RateVideo';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateVideoGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoGet$Plain$Response(params?: ApiRateVideoGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiRateVideoGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateVideoGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoGet$Plain(params?: ApiRateVideoGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiRateVideoGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateVideoDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateVideoGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoGet$Response(params?: ApiRateVideoGet$Params, context?: HttpContext): Observable> {\r\n return apiRateVideoGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateVideoGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoGet(params?: ApiRateVideoGet$Params, context?: HttpContext): Observable {\r\n return this.apiRateVideoGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateVideoDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateVideoPost()` */\r\n static readonly ApiRateVideoPostPath = '/api/RateVideo';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateVideoPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiRateVideoPost$Response(params?: ApiRateVideoPost$Params, context?: HttpContext): Observable> {\r\n return apiRateVideoPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateVideoPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiRateVideoPost(params?: ApiRateVideoPost$Params, context?: HttpContext): Observable {\r\n return this.apiRateVideoPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateVideoIdGet()` */\r\n static readonly ApiRateVideoIdGetPath = '/api/RateVideo/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateVideoIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoIdGet$Plain$Response(params: ApiRateVideoIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiRateVideoIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateVideoIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoIdGet$Plain(params: ApiRateVideoIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiRateVideoIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateVideoDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateVideoIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoIdGet$Response(params: ApiRateVideoIdGet$Params, context?: HttpContext): Observable> {\r\n return apiRateVideoIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateVideoIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoIdGet(params: ApiRateVideoIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiRateVideoIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewRateVideoDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiRateVideoIdDelete()` */\r\n static readonly ApiRateVideoIdDeletePath = '/api/RateVideo/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiRateVideoIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoIdDelete$Response(params: ApiRateVideoIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiRateVideoIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiRateVideoIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiRateVideoIdDelete(params: ApiRateVideoIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiRateVideoIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AdminDashboardDataDto } from '../../models/admin-dashboard-data-dto';\r\n\r\nexport interface ApiStatsGetAdminDashboardDataGet$Params {\r\n}\r\n\r\nexport function apiStatsGetAdminDashboardDataGet(http: HttpClient, rootUrl: string, params?: ApiStatsGetAdminDashboardDataGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStatsGetAdminDashboardDataGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStatsGetAdminDashboardDataGet.PATH = '/api/Stats/GetAdminDashboardData';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AdminDashboardDataDto } from '../../models/admin-dashboard-data-dto';\r\n\r\nexport interface ApiStatsGetAdminDashboardDataGet$Plain$Params {\r\n}\r\n\r\nexport function apiStatsGetAdminDashboardDataGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStatsGetAdminDashboardDataGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStatsGetAdminDashboardDataGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStatsGetAdminDashboardDataGet$Plain.PATH = '/api/Stats/GetAdminDashboardData';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentDashboardDataDto } from '../../models/student-dashboard-data-dto';\r\n\r\nexport interface ApiStatsGetStudentDashboardDataGet$Params {\r\n studentId?: string;\r\n}\r\n\r\nexport function apiStatsGetStudentDashboardDataGet(http: HttpClient, rootUrl: string, params?: ApiStatsGetStudentDashboardDataGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStatsGetStudentDashboardDataGet.PATH, 'get');\r\n if (params) {\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStatsGetStudentDashboardDataGet.PATH = '/api/Stats/GetStudentDashboardData';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentDashboardDataDto } from '../../models/student-dashboard-data-dto';\r\n\r\nexport interface ApiStatsGetStudentDashboardDataGet$Plain$Params {\r\n studentId?: string;\r\n}\r\n\r\nexport function apiStatsGetStudentDashboardDataGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStatsGetStudentDashboardDataGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStatsGetStudentDashboardDataGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStatsGetStudentDashboardDataGet$Plain.PATH = '/api/Stats/GetStudentDashboardData';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { AdminDashboardDataDto } from '../models/admin-dashboard-data-dto';\r\nimport { apiStatsGetAdminDashboardDataGet } from '../fn/stats/api-stats-get-admin-dashboard-data-get';\r\nimport { ApiStatsGetAdminDashboardDataGet$Params } from '../fn/stats/api-stats-get-admin-dashboard-data-get';\r\nimport { apiStatsGetAdminDashboardDataGet$Plain } from '../fn/stats/api-stats-get-admin-dashboard-data-get-plain';\r\nimport { ApiStatsGetAdminDashboardDataGet$Plain$Params } from '../fn/stats/api-stats-get-admin-dashboard-data-get-plain';\r\nimport { apiStatsGetStudentDashboardDataGet } from '../fn/stats/api-stats-get-student-dashboard-data-get';\r\nimport { ApiStatsGetStudentDashboardDataGet$Params } from '../fn/stats/api-stats-get-student-dashboard-data-get';\r\nimport { apiStatsGetStudentDashboardDataGet$Plain } from '../fn/stats/api-stats-get-student-dashboard-data-get-plain';\r\nimport { ApiStatsGetStudentDashboardDataGet$Plain$Params } from '../fn/stats/api-stats-get-student-dashboard-data-get-plain';\r\nimport { StudentDashboardDataDto } from '../models/student-dashboard-data-dto';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StatsService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiStatsGetAdminDashboardDataGet()` */\r\n static readonly ApiStatsGetAdminDashboardDataGetPath = '/api/Stats/GetAdminDashboardData';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStatsGetAdminDashboardDataGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetAdminDashboardDataGet$Plain$Response(params?: ApiStatsGetAdminDashboardDataGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStatsGetAdminDashboardDataGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStatsGetAdminDashboardDataGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetAdminDashboardDataGet$Plain(params?: ApiStatsGetAdminDashboardDataGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStatsGetAdminDashboardDataGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): AdminDashboardDataDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStatsGetAdminDashboardDataGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetAdminDashboardDataGet$Response(params?: ApiStatsGetAdminDashboardDataGet$Params, context?: HttpContext): Observable> {\r\n return apiStatsGetAdminDashboardDataGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStatsGetAdminDashboardDataGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetAdminDashboardDataGet(params?: ApiStatsGetAdminDashboardDataGet$Params, context?: HttpContext): Observable {\r\n return this.apiStatsGetAdminDashboardDataGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): AdminDashboardDataDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStatsGetStudentDashboardDataGet()` */\r\n static readonly ApiStatsGetStudentDashboardDataGetPath = '/api/Stats/GetStudentDashboardData';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStatsGetStudentDashboardDataGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetStudentDashboardDataGet$Plain$Response(params?: ApiStatsGetStudentDashboardDataGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStatsGetStudentDashboardDataGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStatsGetStudentDashboardDataGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetStudentDashboardDataGet$Plain(params?: ApiStatsGetStudentDashboardDataGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStatsGetStudentDashboardDataGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentDashboardDataDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStatsGetStudentDashboardDataGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetStudentDashboardDataGet$Response(params?: ApiStatsGetStudentDashboardDataGet$Params, context?: HttpContext): Observable> {\r\n return apiStatsGetStudentDashboardDataGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStatsGetStudentDashboardDataGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStatsGetStudentDashboardDataGet(params?: ApiStatsGetStudentDashboardDataGet$Params, context?: HttpContext): Observable {\r\n return this.apiStatsGetStudentDashboardDataGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentDashboardDataDto => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddEditStudentAnswerDto } from '../../models/add-edit-student-answer-dto';\r\nimport { StudentAnswerDtoListPagination } from '../../models/student-answer-dto-list-pagination';\r\n\r\nexport interface ApiStudentExamAddStudentExamAnswerPost$Params {\r\n body?: AddEditStudentAnswerDto\r\n}\r\n\r\nexport function apiStudentExamAddStudentExamAnswerPost(http: HttpClient, rootUrl: string, params?: ApiStudentExamAddStudentExamAnswerPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamAddStudentExamAnswerPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamAddStudentExamAnswerPost.PATH = '/api/StudentExam/AddStudentExamAnswer';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddEditStudentAnswerDto } from '../../models/add-edit-student-answer-dto';\r\nimport { StudentAnswerDtoListPagination } from '../../models/student-answer-dto-list-pagination';\r\n\r\nexport interface ApiStudentExamAddStudentExamAnswerPost$Plain$Params {\r\n body?: AddEditStudentAnswerDto\r\n}\r\n\r\nexport function apiStudentExamAddStudentExamAnswerPost$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamAddStudentExamAnswerPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamAddStudentExamAnswerPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamAddStudentExamAnswerPost$Plain.PATH = '/api/StudentExam/AddStudentExamAnswer';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { CorrectArticleAnswerDto } from '../../models/correct-article-answer-dto';\r\nimport { StudentExamSolvedDtoPagination } from '../../models/student-exam-solved-dto-pagination';\r\n\r\nexport interface ApiStudentExamCorrectArticleAnswerPost$Params {\r\n body?: CorrectArticleAnswerDto\r\n}\r\n\r\nexport function apiStudentExamCorrectArticleAnswerPost(http: HttpClient, rootUrl: string, params?: ApiStudentExamCorrectArticleAnswerPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamCorrectArticleAnswerPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamCorrectArticleAnswerPost.PATH = '/api/StudentExam/CorrectArticleAnswer';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { CorrectArticleAnswerDto } from '../../models/correct-article-answer-dto';\r\nimport { StudentExamSolvedDtoPagination } from '../../models/student-exam-solved-dto-pagination';\r\n\r\nexport interface ApiStudentExamCorrectArticleAnswerPost$Plain$Params {\r\n body?: CorrectArticleAnswerDto\r\n}\r\n\r\nexport function apiStudentExamCorrectArticleAnswerPost$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamCorrectArticleAnswerPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamCorrectArticleAnswerPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamCorrectArticleAnswerPost$Plain.PATH = '/api/StudentExam/CorrectArticleAnswer';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentExamAdminDtoPagination } from '../../models/view-student-exam-admin-dto-pagination';\r\n\r\nexport interface ApiStudentExamFinishStudentExamGet$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiStudentExamFinishStudentExamGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamFinishStudentExamGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamFinishStudentExamGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamFinishStudentExamGet.PATH = '/api/StudentExam/FinishStudentExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentExamAdminDtoPagination } from '../../models/view-student-exam-admin-dto-pagination';\r\n\r\nexport interface ApiStudentExamFinishStudentExamGet$Plain$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiStudentExamFinishStudentExamGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamFinishStudentExamGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamFinishStudentExamGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamFinishStudentExamGet$Plain.PATH = '/api/StudentExam/FinishStudentExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDto } from '../../models/view-exam-dto';\r\n\r\nexport interface ApiStudentExamGetNewStudentExamsGet$Params {\r\n}\r\n\r\nexport function apiStudentExamGetNewStudentExamsGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetNewStudentExamsGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetNewStudentExamsGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetNewStudentExamsGet.PATH = '/api/StudentExam/GetNewStudentExams';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDto } from '../../models/view-exam-dto';\r\n\r\nexport interface ApiStudentExamGetNewStudentExamsGet$Plain$Params {\r\n}\r\n\r\nexport function apiStudentExamGetNewStudentExamsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetNewStudentExamsGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetNewStudentExamsGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetNewStudentExamsGet$Plain.PATH = '/api/StudentExam/GetNewStudentExams';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentExamDto } from '../../models/view-student-exam-dto';\r\n\r\nexport interface ApiStudentExamGetSolvedStudentExamsForStudentGet$Params {\r\n}\r\n\r\nexport function apiStudentExamGetSolvedStudentExamsForStudentGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetSolvedStudentExamsForStudentGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetSolvedStudentExamsForStudentGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetSolvedStudentExamsForStudentGet.PATH = '/api/StudentExam/GetSolvedStudentExamsForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentExamDto } from '../../models/view-student-exam-dto';\r\n\r\nexport interface ApiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Params {\r\n}\r\n\r\nexport function apiStudentExamGetSolvedStudentExamsForStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetSolvedStudentExamsForStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetSolvedStudentExamsForStudentGet$Plain.PATH = '/api/StudentExam/GetSolvedStudentExamsForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentAnswerDto } from '../../models/student-answer-dto';\r\n\r\nexport interface ApiStudentExamGetStudentAnswerForExamGet$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiStudentExamGetStudentAnswerForExamGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentAnswerForExamGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentAnswerForExamGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentAnswerForExamGet.PATH = '/api/StudentExam/GetStudentAnswerForExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentAnswerDto } from '../../models/student-answer-dto';\r\n\r\nexport interface ApiStudentExamGetStudentAnswerForExamGet$Plain$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiStudentExamGetStudentAnswerForExamGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentAnswerForExamGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentAnswerForExamGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentAnswerForExamGet$Plain.PATH = '/api/StudentExam/GetStudentAnswerForExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentAnswerDto } from '../../models/student-answer-dto';\r\n\r\nexport interface ApiStudentExamGetStudentAnswerModelForExamGet$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiStudentExamGetStudentAnswerModelForExamGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentAnswerModelForExamGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentAnswerModelForExamGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentAnswerModelForExamGet.PATH = '/api/StudentExam/GetStudentAnswerModelForExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentAnswerDto } from '../../models/student-answer-dto';\r\n\r\nexport interface ApiStudentExamGetStudentAnswerModelForExamGet$Plain$Params {\r\n ExamId?: number;\r\n}\r\n\r\nexport function apiStudentExamGetStudentAnswerModelForExamGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentAnswerModelForExamGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentAnswerModelForExamGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentAnswerModelForExamGet$Plain.PATH = '/api/StudentExam/GetStudentAnswerModelForExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentExamAdminDtoListPagination } from '../../models/view-student-exam-admin-dto-list-pagination';\r\n\r\nexport interface ApiStudentExamGetStudentExamForAdminGet$Params {\r\n ExamId?: number;\r\n pageNumber?: number;\r\n pageSize?: number;\r\n searchTerm?: string;\r\n}\r\n\r\nexport function apiStudentExamGetStudentExamForAdminGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentExamForAdminGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentExamForAdminGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n rb.query('pageNumber', params.pageNumber, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('searchTerm', params.searchTerm, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentExamForAdminGet.PATH = '/api/StudentExam/GetStudentExamForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentExamAdminDtoListPagination } from '../../models/view-student-exam-admin-dto-list-pagination';\r\n\r\nexport interface ApiStudentExamGetStudentExamForAdminGet$Plain$Params {\r\n ExamId?: number;\r\n pageNumber?: number;\r\n pageSize?: number;\r\n searchTerm?: string;\r\n}\r\n\r\nexport function apiStudentExamGetStudentExamForAdminGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentExamForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentExamForAdminGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n rb.query('pageNumber', params.pageNumber, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('searchTerm', params.searchTerm, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentExamForAdminGet$Plain.PATH = '/api/StudentExam/GetStudentExamForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentExamSolvedDto } from '../../models/student-exam-solved-dto';\r\n\r\nexport interface ApiStudentExamGetStudentExamSolvedForAdminGet$Params {\r\n ExamId?: number;\r\n studentId?: string;\r\n}\r\n\r\nexport function apiStudentExamGetStudentExamSolvedForAdminGet(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentExamSolvedForAdminGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentExamSolvedForAdminGet.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentExamSolvedForAdminGet.PATH = '/api/StudentExam/GetStudentExamSolvedForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentExamSolvedDto } from '../../models/student-exam-solved-dto';\r\n\r\nexport interface ApiStudentExamGetStudentExamSolvedForAdminGet$Plain$Params {\r\n ExamId?: number;\r\n studentId?: string;\r\n}\r\n\r\nexport function apiStudentExamGetStudentExamSolvedForAdminGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamGetStudentExamSolvedForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamGetStudentExamSolvedForAdminGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamGetStudentExamSolvedForAdminGet$Plain.PATH = '/api/StudentExam/GetStudentExamSolvedForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ObjectPagination } from '../../models/object-pagination';\r\n\r\nexport interface ApiStudentExamRemoveStudentExamForAdminDelete$Params {\r\n ExamId?: number;\r\n studentId?: string;\r\n}\r\n\r\nexport function apiStudentExamRemoveStudentExamForAdminDelete(http: HttpClient, rootUrl: string, params?: ApiStudentExamRemoveStudentExamForAdminDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamRemoveStudentExamForAdminDelete.PATH, 'delete');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamRemoveStudentExamForAdminDelete.PATH = '/api/StudentExam/RemoveStudentExamForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ObjectPagination } from '../../models/object-pagination';\r\n\r\nexport interface ApiStudentExamRemoveStudentExamForAdminDelete$Plain$Params {\r\n ExamId?: number;\r\n studentId?: string;\r\n}\r\n\r\nexport function apiStudentExamRemoveStudentExamForAdminDelete$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamRemoveStudentExamForAdminDelete$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamRemoveStudentExamForAdminDelete$Plain.PATH, 'delete');\r\n if (params) {\r\n rb.query('ExamId', params.ExamId, {});\r\n rb.query('studentId', params.studentId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamRemoveStudentExamForAdminDelete$Plain.PATH = '/api/StudentExam/RemoveStudentExamForAdmin';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDtoPagination } from '../../models/view-exam-dto-pagination';\r\n\r\nexport interface ApiStudentExamStartExamPost$Params {\r\n examId?: number;\r\n}\r\n\r\nexport function apiStudentExamStartExamPost(http: HttpClient, rootUrl: string, params?: ApiStudentExamStartExamPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamStartExamPost.PATH, 'post');\r\n if (params) {\r\n rb.query('examId', params.examId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamStartExamPost.PATH = '/api/StudentExam/StartExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewExamDtoPagination } from '../../models/view-exam-dto-pagination';\r\n\r\nexport interface ApiStudentExamStartExamPost$Plain$Params {\r\n examId?: number;\r\n}\r\n\r\nexport function apiStudentExamStartExamPost$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentExamStartExamPost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentExamStartExamPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.query('examId', params.examId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentExamStartExamPost$Plain.PATH = '/api/StudentExam/StartExam';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiStudentExamAddStudentExamAnswerPost } from '../fn/student-exam/api-student-exam-add-student-exam-answer-post';\r\nimport { ApiStudentExamAddStudentExamAnswerPost$Params } from '../fn/student-exam/api-student-exam-add-student-exam-answer-post';\r\nimport { apiStudentExamAddStudentExamAnswerPost$Plain } from '../fn/student-exam/api-student-exam-add-student-exam-answer-post-plain';\r\nimport { ApiStudentExamAddStudentExamAnswerPost$Plain$Params } from '../fn/student-exam/api-student-exam-add-student-exam-answer-post-plain';\r\nimport { apiStudentExamCorrectArticleAnswerPost } from '../fn/student-exam/api-student-exam-correct-article-answer-post';\r\nimport { ApiStudentExamCorrectArticleAnswerPost$Params } from '../fn/student-exam/api-student-exam-correct-article-answer-post';\r\nimport { apiStudentExamCorrectArticleAnswerPost$Plain } from '../fn/student-exam/api-student-exam-correct-article-answer-post-plain';\r\nimport { ApiStudentExamCorrectArticleAnswerPost$Plain$Params } from '../fn/student-exam/api-student-exam-correct-article-answer-post-plain';\r\nimport { apiStudentExamFinishStudentExamGet } from '../fn/student-exam/api-student-exam-finish-student-exam-get';\r\nimport { ApiStudentExamFinishStudentExamGet$Params } from '../fn/student-exam/api-student-exam-finish-student-exam-get';\r\nimport { apiStudentExamFinishStudentExamGet$Plain } from '../fn/student-exam/api-student-exam-finish-student-exam-get-plain';\r\nimport { ApiStudentExamFinishStudentExamGet$Plain$Params } from '../fn/student-exam/api-student-exam-finish-student-exam-get-plain';\r\nimport { apiStudentExamGetNewStudentExamsGet } from '../fn/student-exam/api-student-exam-get-new-student-exams-get';\r\nimport { ApiStudentExamGetNewStudentExamsGet$Params } from '../fn/student-exam/api-student-exam-get-new-student-exams-get';\r\nimport { apiStudentExamGetNewStudentExamsGet$Plain } from '../fn/student-exam/api-student-exam-get-new-student-exams-get-plain';\r\nimport { ApiStudentExamGetNewStudentExamsGet$Plain$Params } from '../fn/student-exam/api-student-exam-get-new-student-exams-get-plain';\r\nimport { apiStudentExamGetSolvedStudentExamsForStudentGet } from '../fn/student-exam/api-student-exam-get-solved-student-exams-for-student-get';\r\nimport { ApiStudentExamGetSolvedStudentExamsForStudentGet$Params } from '../fn/student-exam/api-student-exam-get-solved-student-exams-for-student-get';\r\nimport { apiStudentExamGetSolvedStudentExamsForStudentGet$Plain } from '../fn/student-exam/api-student-exam-get-solved-student-exams-for-student-get-plain';\r\nimport { ApiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Params } from '../fn/student-exam/api-student-exam-get-solved-student-exams-for-student-get-plain';\r\nimport { apiStudentExamGetStudentAnswerForExamGet } from '../fn/student-exam/api-student-exam-get-student-answer-for-exam-get';\r\nimport { ApiStudentExamGetStudentAnswerForExamGet$Params } from '../fn/student-exam/api-student-exam-get-student-answer-for-exam-get';\r\nimport { apiStudentExamGetStudentAnswerForExamGet$Plain } from '../fn/student-exam/api-student-exam-get-student-answer-for-exam-get-plain';\r\nimport { ApiStudentExamGetStudentAnswerForExamGet$Plain$Params } from '../fn/student-exam/api-student-exam-get-student-answer-for-exam-get-plain';\r\nimport { apiStudentExamGetStudentAnswerModelForExamGet } from '../fn/student-exam/api-student-exam-get-student-answer-model-for-exam-get';\r\nimport { ApiStudentExamGetStudentAnswerModelForExamGet$Params } from '../fn/student-exam/api-student-exam-get-student-answer-model-for-exam-get';\r\nimport { apiStudentExamGetStudentAnswerModelForExamGet$Plain } from '../fn/student-exam/api-student-exam-get-student-answer-model-for-exam-get-plain';\r\nimport { ApiStudentExamGetStudentAnswerModelForExamGet$Plain$Params } from '../fn/student-exam/api-student-exam-get-student-answer-model-for-exam-get-plain';\r\nimport { apiStudentExamGetStudentExamForAdminGet } from '../fn/student-exam/api-student-exam-get-student-exam-for-admin-get';\r\nimport { ApiStudentExamGetStudentExamForAdminGet$Params } from '../fn/student-exam/api-student-exam-get-student-exam-for-admin-get';\r\nimport { apiStudentExamGetStudentExamForAdminGet$Plain } from '../fn/student-exam/api-student-exam-get-student-exam-for-admin-get-plain';\r\nimport { ApiStudentExamGetStudentExamForAdminGet$Plain$Params } from '../fn/student-exam/api-student-exam-get-student-exam-for-admin-get-plain';\r\nimport { apiStudentExamGetStudentExamSolvedForAdminGet } from '../fn/student-exam/api-student-exam-get-student-exam-solved-for-admin-get';\r\nimport { ApiStudentExamGetStudentExamSolvedForAdminGet$Params } from '../fn/student-exam/api-student-exam-get-student-exam-solved-for-admin-get';\r\nimport { apiStudentExamGetStudentExamSolvedForAdminGet$Plain } from '../fn/student-exam/api-student-exam-get-student-exam-solved-for-admin-get-plain';\r\nimport { ApiStudentExamGetStudentExamSolvedForAdminGet$Plain$Params } from '../fn/student-exam/api-student-exam-get-student-exam-solved-for-admin-get-plain';\r\nimport { apiStudentExamRemoveStudentExamForAdminDelete } from '../fn/student-exam/api-student-exam-remove-student-exam-for-admin-delete';\r\nimport { ApiStudentExamRemoveStudentExamForAdminDelete$Params } from '../fn/student-exam/api-student-exam-remove-student-exam-for-admin-delete';\r\nimport { apiStudentExamRemoveStudentExamForAdminDelete$Plain } from '../fn/student-exam/api-student-exam-remove-student-exam-for-admin-delete-plain';\r\nimport { ApiStudentExamRemoveStudentExamForAdminDelete$Plain$Params } from '../fn/student-exam/api-student-exam-remove-student-exam-for-admin-delete-plain';\r\nimport { apiStudentExamStartExamPost } from '../fn/student-exam/api-student-exam-start-exam-post';\r\nimport { ApiStudentExamStartExamPost$Params } from '../fn/student-exam/api-student-exam-start-exam-post';\r\nimport { apiStudentExamStartExamPost$Plain } from '../fn/student-exam/api-student-exam-start-exam-post-plain';\r\nimport { ApiStudentExamStartExamPost$Plain$Params } from '../fn/student-exam/api-student-exam-start-exam-post-plain';\r\nimport { ObjectPagination } from '../models/object-pagination';\r\nimport { StudentAnswerDto } from '../models/student-answer-dto';\r\nimport { StudentAnswerDtoListPagination } from '../models/student-answer-dto-list-pagination';\r\nimport { StudentExamSolvedDto } from '../models/student-exam-solved-dto';\r\nimport { StudentExamSolvedDtoPagination } from '../models/student-exam-solved-dto-pagination';\r\nimport { ViewExamDto } from '../models/view-exam-dto';\r\nimport { ViewExamDtoPagination } from '../models/view-exam-dto-pagination';\r\nimport { ViewStudentExamAdminDtoListPagination } from '../models/view-student-exam-admin-dto-list-pagination';\r\nimport { ViewStudentExamAdminDtoPagination } from '../models/view-student-exam-admin-dto-pagination';\r\nimport { ViewStudentExamDto } from '../models/view-student-exam-dto';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StudentExamService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiStudentExamStartExamPost()` */\r\n static readonly ApiStudentExamStartExamPostPath = '/api/StudentExam/StartExam';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamStartExamPost$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamStartExamPost$Plain$Response(params?: ApiStudentExamStartExamPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamStartExamPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamStartExamPost$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamStartExamPost$Plain(params?: ApiStudentExamStartExamPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamStartExamPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewExamDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamStartExamPost()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamStartExamPost$Response(params?: ApiStudentExamStartExamPost$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamStartExamPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamStartExamPost$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamStartExamPost(params?: ApiStudentExamStartExamPost$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamStartExamPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewExamDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamGetSolvedStudentExamsForStudentGet()` */\r\n static readonly ApiStudentExamGetSolvedStudentExamsForStudentGetPath = '/api/StudentExam/GetSolvedStudentExamsForStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetSolvedStudentExamsForStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Response(params?: ApiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetSolvedStudentExamsForStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetSolvedStudentExamsForStudentGet$Plain(params?: ApiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetSolvedStudentExamsForStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetSolvedStudentExamsForStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetSolvedStudentExamsForStudentGet$Response(params?: ApiStudentExamGetSolvedStudentExamsForStudentGet$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetSolvedStudentExamsForStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetSolvedStudentExamsForStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetSolvedStudentExamsForStudentGet(params?: ApiStudentExamGetSolvedStudentExamsForStudentGet$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetSolvedStudentExamsForStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamFinishStudentExamGet()` */\r\n static readonly ApiStudentExamFinishStudentExamGetPath = '/api/StudentExam/FinishStudentExam';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamFinishStudentExamGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamFinishStudentExamGet$Plain$Response(params?: ApiStudentExamFinishStudentExamGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamFinishStudentExamGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamFinishStudentExamGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamFinishStudentExamGet$Plain(params?: ApiStudentExamFinishStudentExamGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamFinishStudentExamGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentExamAdminDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamFinishStudentExamGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamFinishStudentExamGet$Response(params?: ApiStudentExamFinishStudentExamGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamFinishStudentExamGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamFinishStudentExamGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamFinishStudentExamGet(params?: ApiStudentExamFinishStudentExamGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamFinishStudentExamGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentExamAdminDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamGetNewStudentExamsGet()` */\r\n static readonly ApiStudentExamGetNewStudentExamsGetPath = '/api/StudentExam/GetNewStudentExams';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetNewStudentExamsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetNewStudentExamsGet$Plain$Response(params?: ApiStudentExamGetNewStudentExamsGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetNewStudentExamsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetNewStudentExamsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetNewStudentExamsGet$Plain(params?: ApiStudentExamGetNewStudentExamsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetNewStudentExamsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetNewStudentExamsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetNewStudentExamsGet$Response(params?: ApiStudentExamGetNewStudentExamsGet$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetNewStudentExamsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetNewStudentExamsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetNewStudentExamsGet(params?: ApiStudentExamGetNewStudentExamsGet$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetNewStudentExamsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamAddStudentExamAnswerPost()` */\r\n static readonly ApiStudentExamAddStudentExamAnswerPostPath = '/api/StudentExam/AddStudentExamAnswer';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamAddStudentExamAnswerPost$Plain()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamAddStudentExamAnswerPost$Plain$Response(params?: ApiStudentExamAddStudentExamAnswerPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamAddStudentExamAnswerPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamAddStudentExamAnswerPost$Plain$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamAddStudentExamAnswerPost$Plain(params?: ApiStudentExamAddStudentExamAnswerPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamAddStudentExamAnswerPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentAnswerDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamAddStudentExamAnswerPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamAddStudentExamAnswerPost$Response(params?: ApiStudentExamAddStudentExamAnswerPost$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamAddStudentExamAnswerPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamAddStudentExamAnswerPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamAddStudentExamAnswerPost(params?: ApiStudentExamAddStudentExamAnswerPost$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamAddStudentExamAnswerPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentAnswerDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamGetStudentAnswerForExamGet()` */\r\n static readonly ApiStudentExamGetStudentAnswerForExamGetPath = '/api/StudentExam/GetStudentAnswerForExam';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentAnswerForExamGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerForExamGet$Plain$Response(params?: ApiStudentExamGetStudentAnswerForExamGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetStudentAnswerForExamGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentAnswerForExamGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerForExamGet$Plain(params?: ApiStudentExamGetStudentAnswerForExamGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetStudentAnswerForExamGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentAnswerForExamGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerForExamGet$Response(params?: ApiStudentExamGetStudentAnswerForExamGet$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetStudentAnswerForExamGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentAnswerForExamGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerForExamGet(params?: ApiStudentExamGetStudentAnswerForExamGet$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetStudentAnswerForExamGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamGetStudentAnswerModelForExamGet()` */\r\n static readonly ApiStudentExamGetStudentAnswerModelForExamGetPath = '/api/StudentExam/GetStudentAnswerModelForExam';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentAnswerModelForExamGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerModelForExamGet$Plain$Response(params?: ApiStudentExamGetStudentAnswerModelForExamGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetStudentAnswerModelForExamGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentAnswerModelForExamGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerModelForExamGet$Plain(params?: ApiStudentExamGetStudentAnswerModelForExamGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetStudentAnswerModelForExamGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentAnswerModelForExamGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerModelForExamGet$Response(params?: ApiStudentExamGetStudentAnswerModelForExamGet$Params, context?: HttpContext): Observable>> {\r\n return apiStudentExamGetStudentAnswerModelForExamGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentAnswerModelForExamGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentAnswerModelForExamGet(params?: ApiStudentExamGetStudentAnswerModelForExamGet$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentExamGetStudentAnswerModelForExamGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamGetStudentExamForAdminGet()` */\r\n static readonly ApiStudentExamGetStudentExamForAdminGetPath = '/api/StudentExam/GetStudentExamForAdmin';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentExamForAdminGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamForAdminGet$Plain$Response(params?: ApiStudentExamGetStudentExamForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamGetStudentExamForAdminGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentExamForAdminGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamForAdminGet$Plain(params?: ApiStudentExamGetStudentExamForAdminGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamGetStudentExamForAdminGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentExamAdminDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentExamForAdminGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamForAdminGet$Response(params?: ApiStudentExamGetStudentExamForAdminGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamGetStudentExamForAdminGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentExamForAdminGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamForAdminGet(params?: ApiStudentExamGetStudentExamForAdminGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamGetStudentExamForAdminGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentExamAdminDtoListPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamRemoveStudentExamForAdminDelete()` */\r\n static readonly ApiStudentExamRemoveStudentExamForAdminDeletePath = '/api/StudentExam/RemoveStudentExamForAdmin';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamRemoveStudentExamForAdminDelete$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamRemoveStudentExamForAdminDelete$Plain$Response(params?: ApiStudentExamRemoveStudentExamForAdminDelete$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamRemoveStudentExamForAdminDelete$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamRemoveStudentExamForAdminDelete$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamRemoveStudentExamForAdminDelete$Plain(params?: ApiStudentExamRemoveStudentExamForAdminDelete$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamRemoveStudentExamForAdminDelete$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ObjectPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamRemoveStudentExamForAdminDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamRemoveStudentExamForAdminDelete$Response(params?: ApiStudentExamRemoveStudentExamForAdminDelete$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamRemoveStudentExamForAdminDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamRemoveStudentExamForAdminDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamRemoveStudentExamForAdminDelete(params?: ApiStudentExamRemoveStudentExamForAdminDelete$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamRemoveStudentExamForAdminDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ObjectPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamGetStudentExamSolvedForAdminGet()` */\r\n static readonly ApiStudentExamGetStudentExamSolvedForAdminGetPath = '/api/StudentExam/GetStudentExamSolvedForAdmin';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentExamSolvedForAdminGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamSolvedForAdminGet$Plain$Response(params?: ApiStudentExamGetStudentExamSolvedForAdminGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamGetStudentExamSolvedForAdminGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentExamSolvedForAdminGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamSolvedForAdminGet$Plain(params?: ApiStudentExamGetStudentExamSolvedForAdminGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamGetStudentExamSolvedForAdminGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentExamSolvedDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamGetStudentExamSolvedForAdminGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamSolvedForAdminGet$Response(params?: ApiStudentExamGetStudentExamSolvedForAdminGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamGetStudentExamSolvedForAdminGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamGetStudentExamSolvedForAdminGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentExamGetStudentExamSolvedForAdminGet(params?: ApiStudentExamGetStudentExamSolvedForAdminGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamGetStudentExamSolvedForAdminGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentExamSolvedDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentExamCorrectArticleAnswerPost()` */\r\n static readonly ApiStudentExamCorrectArticleAnswerPostPath = '/api/StudentExam/CorrectArticleAnswer';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamCorrectArticleAnswerPost$Plain()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamCorrectArticleAnswerPost$Plain$Response(params?: ApiStudentExamCorrectArticleAnswerPost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamCorrectArticleAnswerPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamCorrectArticleAnswerPost$Plain$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamCorrectArticleAnswerPost$Plain(params?: ApiStudentExamCorrectArticleAnswerPost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamCorrectArticleAnswerPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentExamSolvedDtoPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentExamCorrectArticleAnswerPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamCorrectArticleAnswerPost$Response(params?: ApiStudentExamCorrectArticleAnswerPost$Params, context?: HttpContext): Observable> {\r\n return apiStudentExamCorrectArticleAnswerPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentExamCorrectArticleAnswerPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentExamCorrectArticleAnswerPost(params?: ApiStudentExamCorrectArticleAnswerPost$Params, context?: HttpContext): Observable {\r\n return this.apiStudentExamCorrectArticleAnswerPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): StudentExamSolvedDtoPagination => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddStudentSubjectTeachersDto } from '../../models/add-student-subject-teachers-dto';\r\nimport { StudentType } from '../../models/student-type';\r\n\r\nexport interface ApiStudentAddStudentPost$Params {\r\n body?: {\r\n'Id'?: string;\r\n'Name'?: string;\r\n'Status'?: string;\r\n'PhoneNumber'?: string;\r\n'Img'?: Blob;\r\n'ParentPhone'?: string;\r\n'ParentPhone2'?: string;\r\n'Type'?: StudentType;\r\n'joinDate'?: string;\r\n'ApplicationUserId'?: string;\r\n'LevelYearsId'?: number;\r\n'StudentSubjectTeachers'?: Array;\r\n}\r\n}\r\n\r\nexport function apiStudentAddStudentPost(http: HttpClient, rootUrl: string, params?: ApiStudentAddStudentPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentAddStudentPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentAddStudentPost.PATH = '/api/Student/addStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddStudentSubjectTeachersDto } from '../../models/add-student-subject-teachers-dto';\r\nimport { GetStudentSubjectTeacherDto } from '../../models/get-student-subject-teacher-dto';\r\n\r\nexport interface ApiStudentAddStudentSubjectTeacherPost$Params {\r\n body?: Array\r\n}\r\n\r\nexport function apiStudentAddStudentSubjectTeacherPost(http: HttpClient, rootUrl: string, params?: ApiStudentAddStudentSubjectTeacherPost$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentAddStudentSubjectTeacherPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentAddStudentSubjectTeacherPost.PATH = '/api/Student/AddStudentSubjectTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddStudentSubjectTeachersDto } from '../../models/add-student-subject-teachers-dto';\r\nimport { GetStudentSubjectTeacherDto } from '../../models/get-student-subject-teacher-dto';\r\n\r\nexport interface ApiStudentAddStudentSubjectTeacherPost$Plain$Params {\r\n body?: Array\r\n}\r\n\r\nexport function apiStudentAddStudentSubjectTeacherPost$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentAddStudentSubjectTeacherPost$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentAddStudentSubjectTeacherPost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentAddStudentSubjectTeacherPost$Plain.PATH = '/api/Student/AddStudentSubjectTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiStudentChangeStatusPut$Params {\r\n id?: string;\r\n status?: string;\r\n}\r\n\r\nexport function apiStudentChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiStudentChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentChangeStatusPut.PATH = '/api/Student/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentStatus } from '../../models/student-status';\r\n\r\nexport interface ApiStudentChangeStudentSubjectTeacherStatusPut$Params {\r\n StId?: string;\r\n teacherId?: number;\r\n subjectId?: number;\r\n status?: StudentStatus;\r\n}\r\n\r\nexport function apiStudentChangeStudentSubjectTeacherStatusPut(http: HttpClient, rootUrl: string, params?: ApiStudentChangeStudentSubjectTeacherStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentChangeStudentSubjectTeacherStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('StId', params.StId, {});\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentChangeStudentSubjectTeacherStatusPut.PATH = '/api/Student/ChangeStudentSubjectTeacherStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGet(http: HttpClient, rootUrl: string, params?: ApiStudentGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGet.PATH = '/api/Student';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGet$Plain.PATH = '/api/Student';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetAcceptedStudentsGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGetAcceptedStudentsGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetAcceptedStudentsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetAcceptedStudentsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetAcceptedStudentsGet.PATH = '/api/Student/getAcceptedStudents';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetAcceptedStudentsGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGetAcceptedStudentsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetAcceptedStudentsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetAcceptedStudentsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetAcceptedStudentsGet$Plain.PATH = '/api/Student/getAcceptedStudents';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewChapterDtoIEnumerablePagination } from '../../models/view-chapter-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetCoursesChapterGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n courseId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGetCoursesChapterGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetCoursesChapterGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetCoursesChapterGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('courseId', params.courseId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetCoursesChapterGet.PATH = '/api/Student/GetCoursesChapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewChapterDtoIEnumerablePagination } from '../../models/view-chapter-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetCoursesChapterGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n courseId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGetCoursesChapterGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetCoursesChapterGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetCoursesChapterGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('courseId', params.courseId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetCoursesChapterGet$Plain.PATH = '/api/Student/GetCoursesChapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentCourseDtoIEnumerablePagination } from '../../models/view-student-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetCoursesGet$Params {\r\n SubId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n}\r\n\r\nexport function apiStudentGetCoursesGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetCoursesGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetCoursesGet.PATH, 'get');\r\n if (params) {\r\n rb.query('SubId', params.SubId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetCoursesGet.PATH = '/api/Student/GetCourses';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentCourseDtoIEnumerablePagination } from '../../models/view-student-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetCoursesGet$Plain$Params {\r\n SubId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n}\r\n\r\nexport function apiStudentGetCoursesGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetCoursesGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetCoursesGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('SubId', params.SubId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetCoursesGet$Plain.PATH = '/api/Student/GetCourses';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiStudentGetParentRequestsForStudentGet$Params {\r\n}\r\n\r\nexport function apiStudentGetParentRequestsForStudentGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetParentRequestsForStudentGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetParentRequestsForStudentGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetParentRequestsForStudentGet.PATH = '/api/Student/GetParentRequestsForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { UserDto } from '../../models/user-dto';\r\n\r\nexport interface ApiStudentGetParentRequestsForStudentGet$Plain$Params {\r\n}\r\n\r\nexport function apiStudentGetParentRequestsForStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetParentRequestsForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetParentRequestsForStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetParentRequestsForStudentGet$Plain.PATH = '/api/Student/GetParentRequestsForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetPindedStudentsGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGetPindedStudentsGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetPindedStudentsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetPindedStudentsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetPindedStudentsGet.PATH = '/api/Student/getPindedStudents';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDtoIEnumerablePagination } from '../../models/view-student-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiStudentGetPindedStudentsGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiStudentGetPindedStudentsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetPindedStudentsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetPindedStudentsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetPindedStudentsGet$Plain.PATH = '/api/Student/getPindedStudents';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentStatus } from '../../models/student-status';\r\n\r\nexport interface ApiStudentGetStudentSubjectTeacherExelReportGet$Params {\r\n teacherId?: number;\r\n subjectId?: number;\r\n levelId?: number;\r\n status?: StudentStatus;\r\n}\r\n\r\nexport function apiStudentGetStudentSubjectTeacherExelReportGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetStudentSubjectTeacherExelReportGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetStudentSubjectTeacherExelReportGet.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('levelId', params.levelId, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'blob', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetStudentSubjectTeacherExelReportGet.PATH = '/api/Student/GetStudentSubjectTeacherExelReport';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { StudentStatus } from '../../models/student-status';\r\n\r\nexport interface ApiStudentGetStudentSubjectTeacherExelReportGet$Plain$Params {\r\n teacherId?: number;\r\n subjectId?: number;\r\n levelId?: number;\r\n status?: StudentStatus;\r\n}\r\n\r\nexport function apiStudentGetStudentSubjectTeacherExelReportGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetStudentSubjectTeacherExelReportGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetStudentSubjectTeacherExelReportGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('levelId', params.levelId, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'blob', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetStudentSubjectTeacherExelReportGet$Plain.PATH = '/api/Student/GetStudentSubjectTeacherExelReport';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { GetStudentSubjectTeacherDto } from '../../models/get-student-subject-teacher-dto';\r\n\r\nexport interface ApiStudentGetStudentSubjectTeacherForStudentGet$Params {\r\n}\r\n\r\nexport function apiStudentGetStudentSubjectTeacherForStudentGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetStudentSubjectTeacherForStudentGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetStudentSubjectTeacherForStudentGet.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetStudentSubjectTeacherForStudentGet.PATH = '/api/Student/GetStudentSubjectTeacherForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { GetStudentSubjectTeacherDto } from '../../models/get-student-subject-teacher-dto';\r\n\r\nexport interface ApiStudentGetStudentSubjectTeacherForStudentGet$Plain$Params {\r\n}\r\n\r\nexport function apiStudentGetStudentSubjectTeacherForStudentGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetStudentSubjectTeacherForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetStudentSubjectTeacherForStudentGet$Plain.PATH, 'get');\r\n if (params) {\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetStudentSubjectTeacherForStudentGet$Plain.PATH = '/api/Student/GetStudentSubjectTeacherForStudent';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { GetStudentSubjectTeacherDtoIEnumerablePagination } from '../../models/get-student-subject-teacher-dto-i-enumerable-pagination';\r\nimport { StudentStatus } from '../../models/student-status';\r\n\r\nexport interface ApiStudentGetStudentSubjectTeacherGet$Params {\r\n teacherId?: number;\r\n subjectId?: number;\r\n levelId?: number;\r\n status?: StudentStatus;\r\n SearchValue?: string;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n}\r\n\r\nexport function apiStudentGetStudentSubjectTeacherGet(http: HttpClient, rootUrl: string, params?: ApiStudentGetStudentSubjectTeacherGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetStudentSubjectTeacherGet.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('levelId', params.levelId, {});\r\n rb.query('status', params.status, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetStudentSubjectTeacherGet.PATH = '/api/Student/GetStudentSubjectTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { GetStudentSubjectTeacherDtoIEnumerablePagination } from '../../models/get-student-subject-teacher-dto-i-enumerable-pagination';\r\nimport { StudentStatus } from '../../models/student-status';\r\n\r\nexport interface ApiStudentGetStudentSubjectTeacherGet$Plain$Params {\r\n teacherId?: number;\r\n subjectId?: number;\r\n levelId?: number;\r\n status?: StudentStatus;\r\n SearchValue?: string;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n}\r\n\r\nexport function apiStudentGetStudentSubjectTeacherGet$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentGetStudentSubjectTeacherGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentGetStudentSubjectTeacherGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('levelId', params.levelId, {});\r\n rb.query('status', params.status, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentGetStudentSubjectTeacherGet$Plain.PATH = '/api/Student/GetStudentSubjectTeacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiStudentIdDelete$Params {\r\n id: string;\r\n}\r\n\r\nexport function apiStudentIdDelete(http: HttpClient, rootUrl: string, params: ApiStudentIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentIdDelete.PATH = '/api/Student/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDto } from '../../models/view-student-dto';\r\n\r\nexport interface ApiStudentIdGet$Params {\r\n id: string;\r\n}\r\n\r\nexport function apiStudentIdGet(http: HttpClient, rootUrl: string, params: ApiStudentIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentIdGet.PATH = '/api/Student/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewStudentDto } from '../../models/view-student-dto';\r\n\r\nexport interface ApiStudentIdGet$Plain$Params {\r\n id: string;\r\n}\r\n\r\nexport function apiStudentIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiStudentIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentIdGet$Plain.PATH = '/api/Student/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { AddStudentSubjectTeachersDto } from '../../models/add-student-subject-teachers-dto';\r\nimport { StudentType } from '../../models/student-type';\r\n\r\nexport interface ApiStudentPut$Params {\r\n body?: {\r\n'Id'?: string;\r\n'Name'?: string;\r\n'Status'?: string;\r\n'PhoneNumber'?: string;\r\n'Img'?: Blob;\r\n'ParentPhone'?: string;\r\n'ParentPhone2'?: string;\r\n'Type'?: StudentType;\r\n'joinDate'?: string;\r\n'ApplicationUserId'?: string;\r\n'LevelYearsId'?: number;\r\n'StudentSubjectTeachers'?: Array;\r\n}\r\n}\r\n\r\nexport function apiStudentPut(http: HttpClient, rootUrl: string, params?: ApiStudentPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentPut.PATH, 'put');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentPut.PATH = '/api/Student';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiStudentRequestCoursePost$Params {\r\n body?: {\r\n'courseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiStudentRequestCoursePost(http: HttpClient, rootUrl: string, params?: ApiStudentRequestCoursePost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentRequestCoursePost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentRequestCoursePost.PATH = '/api/Student/requestCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiStudentRequestCoursePost$Plain$Params {\r\n body?: {\r\n'courseId'?: number;\r\n}\r\n}\r\n\r\nexport function apiStudentRequestCoursePost$Plain(http: HttpClient, rootUrl: string, params?: ApiStudentRequestCoursePost$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentRequestCoursePost$Plain.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentRequestCoursePost$Plain.PATH = '/api/Student/requestCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiStudentUnsubscribeCourseDelete$Params {\r\n CourseId?: number;\r\n StId?: string;\r\n}\r\n\r\nexport function apiStudentUnsubscribeCourseDelete(http: HttpClient, rootUrl: string, params?: ApiStudentUnsubscribeCourseDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentUnsubscribeCourseDelete.PATH, 'delete');\r\n if (params) {\r\n rb.query('CourseId', params.CourseId, {});\r\n rb.query('StId', params.StId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentUnsubscribeCourseDelete.PATH = '/api/Student/UnsubscribeCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiStudentWhatchVideoPost$Params {\r\n VId?: number;\r\n}\r\n\r\nexport function apiStudentWhatchVideoPost(http: HttpClient, rootUrl: string, params?: ApiStudentWhatchVideoPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiStudentWhatchVideoPost.PATH, 'post');\r\n if (params) {\r\n rb.query('VId', params.VId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiStudentWhatchVideoPost.PATH = '/api/Student/WhatchVideo';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiStudentAddStudentPost } from '../fn/student/api-student-add-student-post';\r\nimport { ApiStudentAddStudentPost$Params } from '../fn/student/api-student-add-student-post';\r\nimport { apiStudentAddStudentSubjectTeacherPost } from '../fn/student/api-student-add-student-subject-teacher-post';\r\nimport { ApiStudentAddStudentSubjectTeacherPost$Params } from '../fn/student/api-student-add-student-subject-teacher-post';\r\nimport { apiStudentAddStudentSubjectTeacherPost$Plain } from '../fn/student/api-student-add-student-subject-teacher-post-plain';\r\nimport { ApiStudentAddStudentSubjectTeacherPost$Plain$Params } from '../fn/student/api-student-add-student-subject-teacher-post-plain';\r\nimport { apiStudentChangeStatusPut } from '../fn/student/api-student-change-status-put';\r\nimport { ApiStudentChangeStatusPut$Params } from '../fn/student/api-student-change-status-put';\r\nimport { apiStudentChangeStudentSubjectTeacherStatusPut } from '../fn/student/api-student-change-student-subject-teacher-status-put';\r\nimport { ApiStudentChangeStudentSubjectTeacherStatusPut$Params } from '../fn/student/api-student-change-student-subject-teacher-status-put';\r\nimport { apiStudentGet } from '../fn/student/api-student-get';\r\nimport { ApiStudentGet$Params } from '../fn/student/api-student-get';\r\nimport { apiStudentGet$Plain } from '../fn/student/api-student-get-plain';\r\nimport { ApiStudentGet$Plain$Params } from '../fn/student/api-student-get-plain';\r\nimport { apiStudentGetAcceptedStudentsGet } from '../fn/student/api-student-get-accepted-students-get';\r\nimport { ApiStudentGetAcceptedStudentsGet$Params } from '../fn/student/api-student-get-accepted-students-get';\r\nimport { apiStudentGetAcceptedStudentsGet$Plain } from '../fn/student/api-student-get-accepted-students-get-plain';\r\nimport { ApiStudentGetAcceptedStudentsGet$Plain$Params } from '../fn/student/api-student-get-accepted-students-get-plain';\r\nimport { apiStudentGetCoursesChapterGet } from '../fn/student/api-student-get-courses-chapter-get';\r\nimport { ApiStudentGetCoursesChapterGet$Params } from '../fn/student/api-student-get-courses-chapter-get';\r\nimport { apiStudentGetCoursesChapterGet$Plain } from '../fn/student/api-student-get-courses-chapter-get-plain';\r\nimport { ApiStudentGetCoursesChapterGet$Plain$Params } from '../fn/student/api-student-get-courses-chapter-get-plain';\r\nimport { apiStudentGetCoursesGet } from '../fn/student/api-student-get-courses-get';\r\nimport { ApiStudentGetCoursesGet$Params } from '../fn/student/api-student-get-courses-get';\r\nimport { apiStudentGetCoursesGet$Plain } from '../fn/student/api-student-get-courses-get-plain';\r\nimport { ApiStudentGetCoursesGet$Plain$Params } from '../fn/student/api-student-get-courses-get-plain';\r\nimport { apiStudentGetParentRequestsForStudentGet } from '../fn/student/api-student-get-parent-requests-for-student-get';\r\nimport { ApiStudentGetParentRequestsForStudentGet$Params } from '../fn/student/api-student-get-parent-requests-for-student-get';\r\nimport { apiStudentGetParentRequestsForStudentGet$Plain } from '../fn/student/api-student-get-parent-requests-for-student-get-plain';\r\nimport { ApiStudentGetParentRequestsForStudentGet$Plain$Params } from '../fn/student/api-student-get-parent-requests-for-student-get-plain';\r\nimport { apiStudentGetPindedStudentsGet } from '../fn/student/api-student-get-pinded-students-get';\r\nimport { ApiStudentGetPindedStudentsGet$Params } from '../fn/student/api-student-get-pinded-students-get';\r\nimport { apiStudentGetPindedStudentsGet$Plain } from '../fn/student/api-student-get-pinded-students-get-plain';\r\nimport { ApiStudentGetPindedStudentsGet$Plain$Params } from '../fn/student/api-student-get-pinded-students-get-plain';\r\nimport { apiStudentGetStudentSubjectTeacherExelReportGet } from '../fn/student/api-student-get-student-subject-teacher-exel-report-get';\r\nimport { ApiStudentGetStudentSubjectTeacherExelReportGet$Params } from '../fn/student/api-student-get-student-subject-teacher-exel-report-get';\r\nimport { apiStudentGetStudentSubjectTeacherExelReportGet$Plain } from '../fn/student/api-student-get-student-subject-teacher-exel-report-get-plain';\r\nimport { ApiStudentGetStudentSubjectTeacherExelReportGet$Plain$Params } from '../fn/student/api-student-get-student-subject-teacher-exel-report-get-plain';\r\nimport { apiStudentGetStudentSubjectTeacherForStudentGet } from '../fn/student/api-student-get-student-subject-teacher-for-student-get';\r\nimport { ApiStudentGetStudentSubjectTeacherForStudentGet$Params } from '../fn/student/api-student-get-student-subject-teacher-for-student-get';\r\nimport { apiStudentGetStudentSubjectTeacherForStudentGet$Plain } from '../fn/student/api-student-get-student-subject-teacher-for-student-get-plain';\r\nimport { ApiStudentGetStudentSubjectTeacherForStudentGet$Plain$Params } from '../fn/student/api-student-get-student-subject-teacher-for-student-get-plain';\r\nimport { apiStudentGetStudentSubjectTeacherGet } from '../fn/student/api-student-get-student-subject-teacher-get';\r\nimport { ApiStudentGetStudentSubjectTeacherGet$Params } from '../fn/student/api-student-get-student-subject-teacher-get';\r\nimport { apiStudentGetStudentSubjectTeacherGet$Plain } from '../fn/student/api-student-get-student-subject-teacher-get-plain';\r\nimport { ApiStudentGetStudentSubjectTeacherGet$Plain$Params } from '../fn/student/api-student-get-student-subject-teacher-get-plain';\r\nimport { apiStudentIdDelete } from '../fn/student/api-student-id-delete';\r\nimport { ApiStudentIdDelete$Params } from '../fn/student/api-student-id-delete';\r\nimport { apiStudentIdGet } from '../fn/student/api-student-id-get';\r\nimport { ApiStudentIdGet$Params } from '../fn/student/api-student-id-get';\r\nimport { apiStudentIdGet$Plain } from '../fn/student/api-student-id-get-plain';\r\nimport { ApiStudentIdGet$Plain$Params } from '../fn/student/api-student-id-get-plain';\r\nimport { apiStudentPut } from '../fn/student/api-student-put';\r\nimport { ApiStudentPut$Params } from '../fn/student/api-student-put';\r\nimport { apiStudentRequestCoursePost } from '../fn/student/api-student-request-course-post';\r\nimport { ApiStudentRequestCoursePost$Params } from '../fn/student/api-student-request-course-post';\r\nimport { apiStudentRequestCoursePost$Plain } from '../fn/student/api-student-request-course-post-plain';\r\nimport { ApiStudentRequestCoursePost$Plain$Params } from '../fn/student/api-student-request-course-post-plain';\r\nimport { apiStudentUnsubscribeCourseDelete } from '../fn/student/api-student-unsubscribe-course-delete';\r\nimport { ApiStudentUnsubscribeCourseDelete$Params } from '../fn/student/api-student-unsubscribe-course-delete';\r\nimport { apiStudentWhatchVideoPost } from '../fn/student/api-student-whatch-video-post';\r\nimport { ApiStudentWhatchVideoPost$Params } from '../fn/student/api-student-whatch-video-post';\r\nimport { GetStudentSubjectTeacherDto } from '../models/get-student-subject-teacher-dto';\r\nimport { GetStudentSubjectTeacherDtoIEnumerablePagination } from '../models/get-student-subject-teacher-dto-i-enumerable-pagination';\r\nimport { UserDto } from '../models/user-dto';\r\nimport { ViewChapterDtoIEnumerablePagination } from '../models/view-chapter-dto-i-enumerable-pagination';\r\nimport { ViewStudentCourseDtoIEnumerablePagination } from '../models/view-student-course-dto-i-enumerable-pagination';\r\nimport { ViewStudentDto } from '../models/view-student-dto';\r\nimport { ViewStudentDtoIEnumerablePagination } from '../models/view-student-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StudentService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiStudentGetPindedStudentsGet()` */\r\n static readonly ApiStudentGetPindedStudentsGetPath = '/api/Student/getPindedStudents';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetPindedStudentsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetPindedStudentsGet$Plain$Response(params?: ApiStudentGetPindedStudentsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetPindedStudentsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetPindedStudentsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetPindedStudentsGet$Plain(params?: ApiStudentGetPindedStudentsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetPindedStudentsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetPindedStudentsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetPindedStudentsGet$Response(params?: ApiStudentGetPindedStudentsGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetPindedStudentsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetPindedStudentsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetPindedStudentsGet(params?: ApiStudentGetPindedStudentsGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetPindedStudentsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetAcceptedStudentsGet()` */\r\n static readonly ApiStudentGetAcceptedStudentsGetPath = '/api/Student/getAcceptedStudents';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetAcceptedStudentsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetAcceptedStudentsGet$Plain$Response(params?: ApiStudentGetAcceptedStudentsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetAcceptedStudentsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetAcceptedStudentsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetAcceptedStudentsGet$Plain(params?: ApiStudentGetAcceptedStudentsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetAcceptedStudentsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetAcceptedStudentsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetAcceptedStudentsGet$Response(params?: ApiStudentGetAcceptedStudentsGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetAcceptedStudentsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetAcceptedStudentsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetAcceptedStudentsGet(params?: ApiStudentGetAcceptedStudentsGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetAcceptedStudentsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetCoursesGet()` */\r\n static readonly ApiStudentGetCoursesGetPath = '/api/Student/GetCourses';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetCoursesGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesGet$Plain$Response(params?: ApiStudentGetCoursesGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetCoursesGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetCoursesGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesGet$Plain(params?: ApiStudentGetCoursesGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetCoursesGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetCoursesGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesGet$Response(params?: ApiStudentGetCoursesGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetCoursesGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetCoursesGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesGet(params?: ApiStudentGetCoursesGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetCoursesGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetParentRequestsForStudentGet()` */\r\n static readonly ApiStudentGetParentRequestsForStudentGetPath = '/api/Student/GetParentRequestsForStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetParentRequestsForStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetParentRequestsForStudentGet$Plain$Response(params?: ApiStudentGetParentRequestsForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentGetParentRequestsForStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetParentRequestsForStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetParentRequestsForStudentGet$Plain(params?: ApiStudentGetParentRequestsForStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentGetParentRequestsForStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetParentRequestsForStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetParentRequestsForStudentGet$Response(params?: ApiStudentGetParentRequestsForStudentGet$Params, context?: HttpContext): Observable>> {\r\n return apiStudentGetParentRequestsForStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetParentRequestsForStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetParentRequestsForStudentGet(params?: ApiStudentGetParentRequestsForStudentGet$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentGetParentRequestsForStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetCoursesChapterGet()` */\r\n static readonly ApiStudentGetCoursesChapterGetPath = '/api/Student/GetCoursesChapter';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetCoursesChapterGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesChapterGet$Plain$Response(params?: ApiStudentGetCoursesChapterGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetCoursesChapterGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetCoursesChapterGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesChapterGet$Plain(params?: ApiStudentGetCoursesChapterGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetCoursesChapterGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewChapterDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetCoursesChapterGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesChapterGet$Response(params?: ApiStudentGetCoursesChapterGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetCoursesChapterGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetCoursesChapterGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetCoursesChapterGet(params?: ApiStudentGetCoursesChapterGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetCoursesChapterGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewChapterDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetStudentSubjectTeacherGet()` */\r\n static readonly ApiStudentGetStudentSubjectTeacherGetPath = '/api/Student/GetStudentSubjectTeacher';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetStudentSubjectTeacherGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherGet$Plain$Response(params?: ApiStudentGetStudentSubjectTeacherGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetStudentSubjectTeacherGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetStudentSubjectTeacherGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherGet$Plain(params?: ApiStudentGetStudentSubjectTeacherGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetStudentSubjectTeacherGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): GetStudentSubjectTeacherDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetStudentSubjectTeacherGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherGet$Response(params?: ApiStudentGetStudentSubjectTeacherGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetStudentSubjectTeacherGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetStudentSubjectTeacherGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherGet(params?: ApiStudentGetStudentSubjectTeacherGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetStudentSubjectTeacherGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): GetStudentSubjectTeacherDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetStudentSubjectTeacherExelReportGet()` */\r\n static readonly ApiStudentGetStudentSubjectTeacherExelReportGetPath = '/api/Student/GetStudentSubjectTeacherExelReport';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetStudentSubjectTeacherExelReportGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherExelReportGet$Plain$Response(params?: ApiStudentGetStudentSubjectTeacherExelReportGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetStudentSubjectTeacherExelReportGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetStudentSubjectTeacherExelReportGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherExelReportGet$Plain(params?: ApiStudentGetStudentSubjectTeacherExelReportGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetStudentSubjectTeacherExelReportGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): Blob => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetStudentSubjectTeacherExelReportGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherExelReportGet$Response(params?: ApiStudentGetStudentSubjectTeacherExelReportGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGetStudentSubjectTeacherExelReportGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetStudentSubjectTeacherExelReportGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherExelReportGet(params?: ApiStudentGetStudentSubjectTeacherExelReportGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGetStudentSubjectTeacherExelReportGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): Blob => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGetStudentSubjectTeacherForStudentGet()` */\r\n static readonly ApiStudentGetStudentSubjectTeacherForStudentGetPath = '/api/Student/GetStudentSubjectTeacherForStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetStudentSubjectTeacherForStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherForStudentGet$Plain$Response(params?: ApiStudentGetStudentSubjectTeacherForStudentGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentGetStudentSubjectTeacherForStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetStudentSubjectTeacherForStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherForStudentGet$Plain(params?: ApiStudentGetStudentSubjectTeacherForStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentGetStudentSubjectTeacherForStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGetStudentSubjectTeacherForStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherForStudentGet$Response(params?: ApiStudentGetStudentSubjectTeacherForStudentGet$Params, context?: HttpContext): Observable>> {\r\n return apiStudentGetStudentSubjectTeacherForStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGetStudentSubjectTeacherForStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGetStudentSubjectTeacherForStudentGet(params?: ApiStudentGetStudentSubjectTeacherForStudentGet$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentGetStudentSubjectTeacherForStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentAddStudentSubjectTeacherPost()` */\r\n static readonly ApiStudentAddStudentSubjectTeacherPostPath = '/api/Student/AddStudentSubjectTeacher';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentAddStudentSubjectTeacherPost$Plain()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentAddStudentSubjectTeacherPost$Plain$Response(params?: ApiStudentAddStudentSubjectTeacherPost$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiStudentAddStudentSubjectTeacherPost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentAddStudentSubjectTeacherPost$Plain$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentAddStudentSubjectTeacherPost$Plain(params?: ApiStudentAddStudentSubjectTeacherPost$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentAddStudentSubjectTeacherPost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentAddStudentSubjectTeacherPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentAddStudentSubjectTeacherPost$Response(params?: ApiStudentAddStudentSubjectTeacherPost$Params, context?: HttpContext): Observable>> {\r\n return apiStudentAddStudentSubjectTeacherPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentAddStudentSubjectTeacherPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiStudentAddStudentSubjectTeacherPost(params?: ApiStudentAddStudentSubjectTeacherPost$Params, context?: HttpContext): Observable> {\r\n return this.apiStudentAddStudentSubjectTeacherPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentChangeStudentSubjectTeacherStatusPut()` */\r\n static readonly ApiStudentChangeStudentSubjectTeacherStatusPutPath = '/api/Student/ChangeStudentSubjectTeacherStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentChangeStudentSubjectTeacherStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentChangeStudentSubjectTeacherStatusPut$Response(params?: ApiStudentChangeStudentSubjectTeacherStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiStudentChangeStudentSubjectTeacherStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentChangeStudentSubjectTeacherStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentChangeStudentSubjectTeacherStatusPut(params?: ApiStudentChangeStudentSubjectTeacherStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiStudentChangeStudentSubjectTeacherStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentChangeStatusPut()` */\r\n static readonly ApiStudentChangeStatusPutPath = '/api/Student/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentChangeStatusPut$Response(params?: ApiStudentChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiStudentChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentChangeStatusPut(params?: ApiStudentChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiStudentChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentUnsubscribeCourseDelete()` */\r\n static readonly ApiStudentUnsubscribeCourseDeletePath = '/api/Student/UnsubscribeCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentUnsubscribeCourseDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentUnsubscribeCourseDelete$Response(params?: ApiStudentUnsubscribeCourseDelete$Params, context?: HttpContext): Observable> {\r\n return apiStudentUnsubscribeCourseDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentUnsubscribeCourseDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentUnsubscribeCourseDelete(params?: ApiStudentUnsubscribeCourseDelete$Params, context?: HttpContext): Observable {\r\n return this.apiStudentUnsubscribeCourseDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentWhatchVideoPost()` */\r\n static readonly ApiStudentWhatchVideoPostPath = '/api/Student/WhatchVideo';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentWhatchVideoPost()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentWhatchVideoPost$Response(params?: ApiStudentWhatchVideoPost$Params, context?: HttpContext): Observable> {\r\n return apiStudentWhatchVideoPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentWhatchVideoPost$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentWhatchVideoPost(params?: ApiStudentWhatchVideoPost$Params, context?: HttpContext): Observable {\r\n return this.apiStudentWhatchVideoPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentRequestCoursePost()` */\r\n static readonly ApiStudentRequestCoursePostPath = '/api/Student/requestCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentRequestCoursePost$Plain()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentRequestCoursePost$Plain$Response(params?: ApiStudentRequestCoursePost$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentRequestCoursePost$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentRequestCoursePost$Plain$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentRequestCoursePost$Plain(params?: ApiStudentRequestCoursePost$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentRequestCoursePost$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): string => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentRequestCoursePost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentRequestCoursePost$Response(params?: ApiStudentRequestCoursePost$Params, context?: HttpContext): Observable> {\r\n return apiStudentRequestCoursePost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentRequestCoursePost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentRequestCoursePost(params?: ApiStudentRequestCoursePost$Params, context?: HttpContext): Observable {\r\n return this.apiStudentRequestCoursePost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): string => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentGet()` */\r\n static readonly ApiStudentGetPath = '/api/Student';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGet$Plain$Response(params?: ApiStudentGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGet$Plain(params?: ApiStudentGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGet$Response(params?: ApiStudentGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentGet(params?: ApiStudentGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentPut()` */\r\n static readonly ApiStudentPutPath = '/api/Student';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentPut$Response(params?: ApiStudentPut$Params, context?: HttpContext): Observable> {\r\n return apiStudentPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentPut(params?: ApiStudentPut$Params, context?: HttpContext): Observable {\r\n return this.apiStudentPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentIdGet()` */\r\n static readonly ApiStudentIdGetPath = '/api/Student/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentIdGet$Plain$Response(params: ApiStudentIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiStudentIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentIdGet$Plain(params: ApiStudentIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiStudentIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentIdGet$Response(params: ApiStudentIdGet$Params, context?: HttpContext): Observable> {\r\n return apiStudentIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentIdGet(params: ApiStudentIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiStudentIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewStudentDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentIdDelete()` */\r\n static readonly ApiStudentIdDeletePath = '/api/Student/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentIdDelete$Response(params: ApiStudentIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiStudentIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiStudentIdDelete(params: ApiStudentIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiStudentIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiStudentAddStudentPost()` */\r\n static readonly ApiStudentAddStudentPostPath = '/api/Student/addStudent';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiStudentAddStudentPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentAddStudentPost$Response(params?: ApiStudentAddStudentPost$Params, context?: HttpContext): Observable> {\r\n return apiStudentAddStudentPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiStudentAddStudentPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiStudentAddStudentPost(params?: ApiStudentAddStudentPost$Params, context?: HttpContext): Observable {\r\n return this.apiStudentAddStudentPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiSubjectChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiSubjectChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiSubjectChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectChangeStatusPut.PATH = '/api/Subject/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewSubjectDtoIEnumerablePagination } from '../../models/view-subject-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiSubjectGetAllSubjectsGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n levelYearId?: number;\r\n TeacherId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiSubjectGetAllSubjectsGet(http: HttpClient, rootUrl: string, params?: ApiSubjectGetAllSubjectsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectGetAllSubjectsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('levelYearId', params.levelYearId, {});\r\n rb.query('TeacherId', params.TeacherId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectGetAllSubjectsGet.PATH = '/api/Subject/getAllSubjects';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewSubjectDtoIEnumerablePagination } from '../../models/view-subject-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiSubjectGetAllSubjectsGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n levelYearId?: number;\r\n TeacherId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiSubjectGetAllSubjectsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiSubjectGetAllSubjectsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectGetAllSubjectsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('levelYearId', params.levelYearId, {});\r\n rb.query('TeacherId', params.TeacherId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectGetAllSubjectsGet$Plain.PATH = '/api/Subject/getAllSubjects';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiSubjectIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiSubjectIdDelete(http: HttpClient, rootUrl: string, params: ApiSubjectIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectIdDelete.PATH = '/api/Subject/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewSubjectDto } from '../../models/view-subject-dto';\r\n\r\nexport interface ApiSubjectIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiSubjectIdGet(http: HttpClient, rootUrl: string, params: ApiSubjectIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectIdGet.PATH = '/api/Subject/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewSubjectDto } from '../../models/view-subject-dto';\r\n\r\nexport interface ApiSubjectIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiSubjectIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiSubjectIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectIdGet$Plain.PATH = '/api/Subject/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiSubjectIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'LevelYearsId'?: number;\r\n}\r\n}\r\n\r\nexport function apiSubjectIdPut(http: HttpClient, rootUrl: string, params: ApiSubjectIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectIdPut.PATH = '/api/Subject/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiSubjectPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Status'?: boolean;\r\n'LevelYearsId'?: number;\r\n}\r\n}\r\n\r\nexport function apiSubjectPost(http: HttpClient, rootUrl: string, params?: ApiSubjectPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiSubjectPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiSubjectPost.PATH = '/api/Subject';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiSubjectChangeStatusPut } from '../fn/subject/api-subject-change-status-put';\r\nimport { ApiSubjectChangeStatusPut$Params } from '../fn/subject/api-subject-change-status-put';\r\nimport { apiSubjectGetAllSubjectsGet } from '../fn/subject/api-subject-get-all-subjects-get';\r\nimport { ApiSubjectGetAllSubjectsGet$Params } from '../fn/subject/api-subject-get-all-subjects-get';\r\nimport { apiSubjectGetAllSubjectsGet$Plain } from '../fn/subject/api-subject-get-all-subjects-get-plain';\r\nimport { ApiSubjectGetAllSubjectsGet$Plain$Params } from '../fn/subject/api-subject-get-all-subjects-get-plain';\r\nimport { apiSubjectIdDelete } from '../fn/subject/api-subject-id-delete';\r\nimport { ApiSubjectIdDelete$Params } from '../fn/subject/api-subject-id-delete';\r\nimport { apiSubjectIdGet } from '../fn/subject/api-subject-id-get';\r\nimport { ApiSubjectIdGet$Params } from '../fn/subject/api-subject-id-get';\r\nimport { apiSubjectIdGet$Plain } from '../fn/subject/api-subject-id-get-plain';\r\nimport { ApiSubjectIdGet$Plain$Params } from '../fn/subject/api-subject-id-get-plain';\r\nimport { apiSubjectIdPut } from '../fn/subject/api-subject-id-put';\r\nimport { ApiSubjectIdPut$Params } from '../fn/subject/api-subject-id-put';\r\nimport { apiSubjectPost } from '../fn/subject/api-subject-post';\r\nimport { ApiSubjectPost$Params } from '../fn/subject/api-subject-post';\r\nimport { ViewSubjectDto } from '../models/view-subject-dto';\r\nimport { ViewSubjectDtoIEnumerablePagination } from '../models/view-subject-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SubjectService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiSubjectGetAllSubjectsGet()` */\r\n static readonly ApiSubjectGetAllSubjectsGetPath = '/api/Subject/getAllSubjects';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectGetAllSubjectsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectGetAllSubjectsGet$Plain$Response(params?: ApiSubjectGetAllSubjectsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiSubjectGetAllSubjectsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectGetAllSubjectsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectGetAllSubjectsGet$Plain(params?: ApiSubjectGetAllSubjectsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectGetAllSubjectsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewSubjectDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectGetAllSubjectsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectGetAllSubjectsGet$Response(params?: ApiSubjectGetAllSubjectsGet$Params, context?: HttpContext): Observable> {\r\n return apiSubjectGetAllSubjectsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectGetAllSubjectsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectGetAllSubjectsGet(params?: ApiSubjectGetAllSubjectsGet$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectGetAllSubjectsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewSubjectDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiSubjectIdGet()` */\r\n static readonly ApiSubjectIdGetPath = '/api/Subject/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectIdGet$Plain$Response(params: ApiSubjectIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiSubjectIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectIdGet$Plain(params: ApiSubjectIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewSubjectDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectIdGet$Response(params: ApiSubjectIdGet$Params, context?: HttpContext): Observable> {\r\n return apiSubjectIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectIdGet(params: ApiSubjectIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewSubjectDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiSubjectIdPut()` */\r\n static readonly ApiSubjectIdPutPath = '/api/Subject/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiSubjectIdPut$Response(params: ApiSubjectIdPut$Params, context?: HttpContext): Observable> {\r\n return apiSubjectIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiSubjectIdPut(params: ApiSubjectIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiSubjectIdDelete()` */\r\n static readonly ApiSubjectIdDeletePath = '/api/Subject/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectIdDelete$Response(params: ApiSubjectIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiSubjectIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectIdDelete(params: ApiSubjectIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiSubjectChangeStatusPut()` */\r\n static readonly ApiSubjectChangeStatusPutPath = '/api/Subject/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectChangeStatusPut$Response(params?: ApiSubjectChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiSubjectChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiSubjectChangeStatusPut(params?: ApiSubjectChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiSubjectPost()` */\r\n static readonly ApiSubjectPostPath = '/api/Subject';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiSubjectPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiSubjectPost$Response(params?: ApiSubjectPost$Params, context?: HttpContext): Observable> {\r\n return apiSubjectPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiSubjectPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiSubjectPost(params?: ApiSubjectPost$Params, context?: HttpContext): Observable {\r\n return this.apiSubjectPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { TeacherRequest } from '../../models/teacher-request';\r\n\r\nexport interface ApiTeacherAddTeacherRequsetsPost$Params {\r\n body?: TeacherRequest\r\n}\r\n\r\nexport function apiTeacherAddTeacherRequsetsPost(http: HttpClient, rootUrl: string, params?: ApiTeacherAddTeacherRequsetsPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherAddTeacherRequsetsPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'application/*+json');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherAddTeacherRequsetsPost.PATH = '/api/Teacher/AddTeacherRequsets';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiTeacherChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiTeacherChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiTeacherChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherChangeStatusPut.PATH = '/api/Teacher/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewTeacherDtoIEnumerablePagination } from '../../models/view-teacher-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiTeacherGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n subjectId?: number;\r\n LevelYearId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiTeacherGet(http: HttpClient, rootUrl: string, params?: ApiTeacherGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('LevelYearId', params.LevelYearId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGet.PATH = '/api/Teacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewTeacherDtoIEnumerablePagination } from '../../models/view-teacher-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiTeacherGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n subjectId?: number;\r\n LevelYearId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiTeacherGet$Plain(http: HttpClient, rootUrl: string, params?: ApiTeacherGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('LevelYearId', params.LevelYearId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGet$Plain.PATH = '/api/Teacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelDto } from '../../models/view-level-dto';\r\n\r\nexport interface ApiTeacherGetLevelsByTeacherIdGet$Params {\r\n teacherId?: number;\r\n}\r\n\r\nexport function apiTeacherGetLevelsByTeacherIdGet(http: HttpClient, rootUrl: string, params?: ApiTeacherGetLevelsByTeacherIdGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetLevelsByTeacherIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetLevelsByTeacherIdGet.PATH = '/api/Teacher/getLevelsByTeacherId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelDto } from '../../models/view-level-dto';\r\n\r\nexport interface ApiTeacherGetLevelsByTeacherIdGet$Plain$Params {\r\n teacherId?: number;\r\n}\r\n\r\nexport function apiTeacherGetLevelsByTeacherIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiTeacherGetLevelsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetLevelsByTeacherIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetLevelsByTeacherIdGet$Plain.PATH = '/api/Teacher/getLevelsByTeacherId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDto } from '../../models/view-level-years-dto';\r\n\r\nexport interface ApiTeacherGetLevelYearsByTeacherIdGet$Params {\r\n teacherId?: number;\r\n levelId?: number;\r\n}\r\n\r\nexport function apiTeacherGetLevelYearsByTeacherIdGet(http: HttpClient, rootUrl: string, params?: ApiTeacherGetLevelYearsByTeacherIdGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetLevelYearsByTeacherIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('levelId', params.levelId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetLevelYearsByTeacherIdGet.PATH = '/api/Teacher/getLevelYearsByTeacherId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewLevelYearsDto } from '../../models/view-level-years-dto';\r\n\r\nexport interface ApiTeacherGetLevelYearsByTeacherIdGet$Plain$Params {\r\n teacherId?: number;\r\n levelId?: number;\r\n}\r\n\r\nexport function apiTeacherGetLevelYearsByTeacherIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiTeacherGetLevelYearsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetLevelYearsByTeacherIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('levelId', params.levelId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetLevelYearsByTeacherIdGet$Plain.PATH = '/api/Teacher/getLevelYearsByTeacherId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewSubjectDto } from '../../models/view-subject-dto';\r\n\r\nexport interface ApiTeacherGetSubjectsByTeacherIdGet$Params {\r\n teacherId?: number;\r\n levelYearId?: number;\r\n}\r\n\r\nexport function apiTeacherGetSubjectsByTeacherIdGet(http: HttpClient, rootUrl: string, params?: ApiTeacherGetSubjectsByTeacherIdGet$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetSubjectsByTeacherIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('levelYearId', params.levelYearId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetSubjectsByTeacherIdGet.PATH = '/api/Teacher/getSubjectsByTeacherId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewSubjectDto } from '../../models/view-subject-dto';\r\n\r\nexport interface ApiTeacherGetSubjectsByTeacherIdGet$Plain$Params {\r\n teacherId?: number;\r\n levelYearId?: number;\r\n}\r\n\r\nexport function apiTeacherGetSubjectsByTeacherIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiTeacherGetSubjectsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetSubjectsByTeacherIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('teacherId', params.teacherId, {});\r\n rb.query('levelYearId', params.levelYearId, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse>;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetSubjectsByTeacherIdGet$Plain.PATH = '/api/Teacher/getSubjectsByTeacherId';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { TeacherRequest } from '../../models/teacher-request';\r\n\r\nexport interface ApiTeacherGetTeacherRequsetByIdGet$Params {\r\n id?: number;\r\n}\r\n\r\nexport function apiTeacherGetTeacherRequsetByIdGet(http: HttpClient, rootUrl: string, params?: ApiTeacherGetTeacherRequsetByIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetTeacherRequsetByIdGet.PATH, 'get');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetTeacherRequsetByIdGet.PATH = '/api/Teacher/GetTeacherRequsetById';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { TeacherRequest } from '../../models/teacher-request';\r\n\r\nexport interface ApiTeacherGetTeacherRequsetByIdGet$Plain$Params {\r\n id?: number;\r\n}\r\n\r\nexport function apiTeacherGetTeacherRequsetByIdGet$Plain(http: HttpClient, rootUrl: string, params?: ApiTeacherGetTeacherRequsetByIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetTeacherRequsetByIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetTeacherRequsetByIdGet$Plain.PATH = '/api/Teacher/GetTeacherRequsetById';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { TeacherRequestListPagination } from '../../models/teacher-request-list-pagination';\r\n\r\nexport interface ApiTeacherGetTeacherRequsetsGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n subjectId?: number;\r\n LevelYearId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiTeacherGetTeacherRequsetsGet(http: HttpClient, rootUrl: string, params?: ApiTeacherGetTeacherRequsetsGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetTeacherRequsetsGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('LevelYearId', params.LevelYearId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetTeacherRequsetsGet.PATH = '/api/Teacher/GetTeacherRequsets';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { TeacherRequestListPagination } from '../../models/teacher-request-list-pagination';\r\n\r\nexport interface ApiTeacherGetTeacherRequsetsGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n subjectId?: number;\r\n LevelYearId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiTeacherGetTeacherRequsetsGet$Plain(http: HttpClient, rootUrl: string, params?: ApiTeacherGetTeacherRequsetsGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherGetTeacherRequsetsGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('subjectId', params.subjectId, {});\r\n rb.query('LevelYearId', params.LevelYearId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherGetTeacherRequsetsGet$Plain.PATH = '/api/Teacher/GetTeacherRequsets';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiTeacherIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiTeacherIdDelete(http: HttpClient, rootUrl: string, params: ApiTeacherIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherIdDelete.PATH = '/api/Teacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewTeacherDto } from '../../models/view-teacher-dto';\r\n\r\nexport interface ApiTeacherIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiTeacherIdGet(http: HttpClient, rootUrl: string, params: ApiTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherIdGet.PATH = '/api/Teacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewTeacherDto } from '../../models/view-teacher-dto';\r\n\r\nexport interface ApiTeacherIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiTeacherIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherIdGet$Plain.PATH = '/api/Teacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiTeacherIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Cover'?: Blob;\r\n'PhoneNumber'?: string;\r\n'Info'?: string;\r\n'Status'?: boolean;\r\n'SubjectsId'?: Array;\r\n}\r\n}\r\n\r\nexport function apiTeacherIdPut(http: HttpClient, rootUrl: string, params: ApiTeacherIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherIdPut.PATH = '/api/Teacher/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiTeacherPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Img'?: Blob;\r\n'Cover'?: Blob;\r\n'PhoneNumber'?: string;\r\n'Info'?: string;\r\n'Status'?: boolean;\r\n'SubjectsId'?: Array;\r\n}\r\n}\r\n\r\nexport function apiTeacherPost(http: HttpClient, rootUrl: string, params?: ApiTeacherPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiTeacherPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiTeacherPost.PATH = '/api/Teacher';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiTeacherAddTeacherRequsetsPost } from '../fn/teacher/api-teacher-add-teacher-requsets-post';\r\nimport { ApiTeacherAddTeacherRequsetsPost$Params } from '../fn/teacher/api-teacher-add-teacher-requsets-post';\r\nimport { apiTeacherChangeStatusPut } from '../fn/teacher/api-teacher-change-status-put';\r\nimport { ApiTeacherChangeStatusPut$Params } from '../fn/teacher/api-teacher-change-status-put';\r\nimport { apiTeacherGet } from '../fn/teacher/api-teacher-get';\r\nimport { ApiTeacherGet$Params } from '../fn/teacher/api-teacher-get';\r\nimport { apiTeacherGet$Plain } from '../fn/teacher/api-teacher-get-plain';\r\nimport { ApiTeacherGet$Plain$Params } from '../fn/teacher/api-teacher-get-plain';\r\nimport { apiTeacherGetLevelsByTeacherIdGet } from '../fn/teacher/api-teacher-get-levels-by-teacher-id-get';\r\nimport { ApiTeacherGetLevelsByTeacherIdGet$Params } from '../fn/teacher/api-teacher-get-levels-by-teacher-id-get';\r\nimport { apiTeacherGetLevelsByTeacherIdGet$Plain } from '../fn/teacher/api-teacher-get-levels-by-teacher-id-get-plain';\r\nimport { ApiTeacherGetLevelsByTeacherIdGet$Plain$Params } from '../fn/teacher/api-teacher-get-levels-by-teacher-id-get-plain';\r\nimport { apiTeacherGetLevelYearsByTeacherIdGet } from '../fn/teacher/api-teacher-get-level-years-by-teacher-id-get';\r\nimport { ApiTeacherGetLevelYearsByTeacherIdGet$Params } from '../fn/teacher/api-teacher-get-level-years-by-teacher-id-get';\r\nimport { apiTeacherGetLevelYearsByTeacherIdGet$Plain } from '../fn/teacher/api-teacher-get-level-years-by-teacher-id-get-plain';\r\nimport { ApiTeacherGetLevelYearsByTeacherIdGet$Plain$Params } from '../fn/teacher/api-teacher-get-level-years-by-teacher-id-get-plain';\r\nimport { apiTeacherGetSubjectsByTeacherIdGet } from '../fn/teacher/api-teacher-get-subjects-by-teacher-id-get';\r\nimport { ApiTeacherGetSubjectsByTeacherIdGet$Params } from '../fn/teacher/api-teacher-get-subjects-by-teacher-id-get';\r\nimport { apiTeacherGetSubjectsByTeacherIdGet$Plain } from '../fn/teacher/api-teacher-get-subjects-by-teacher-id-get-plain';\r\nimport { ApiTeacherGetSubjectsByTeacherIdGet$Plain$Params } from '../fn/teacher/api-teacher-get-subjects-by-teacher-id-get-plain';\r\nimport { apiTeacherGetTeacherRequsetByIdGet } from '../fn/teacher/api-teacher-get-teacher-requset-by-id-get';\r\nimport { ApiTeacherGetTeacherRequsetByIdGet$Params } from '../fn/teacher/api-teacher-get-teacher-requset-by-id-get';\r\nimport { apiTeacherGetTeacherRequsetByIdGet$Plain } from '../fn/teacher/api-teacher-get-teacher-requset-by-id-get-plain';\r\nimport { ApiTeacherGetTeacherRequsetByIdGet$Plain$Params } from '../fn/teacher/api-teacher-get-teacher-requset-by-id-get-plain';\r\nimport { apiTeacherGetTeacherRequsetsGet } from '../fn/teacher/api-teacher-get-teacher-requsets-get';\r\nimport { ApiTeacherGetTeacherRequsetsGet$Params } from '../fn/teacher/api-teacher-get-teacher-requsets-get';\r\nimport { apiTeacherGetTeacherRequsetsGet$Plain } from '../fn/teacher/api-teacher-get-teacher-requsets-get-plain';\r\nimport { ApiTeacherGetTeacherRequsetsGet$Plain$Params } from '../fn/teacher/api-teacher-get-teacher-requsets-get-plain';\r\nimport { apiTeacherIdDelete } from '../fn/teacher/api-teacher-id-delete';\r\nimport { ApiTeacherIdDelete$Params } from '../fn/teacher/api-teacher-id-delete';\r\nimport { apiTeacherIdGet } from '../fn/teacher/api-teacher-id-get';\r\nimport { ApiTeacherIdGet$Params } from '../fn/teacher/api-teacher-id-get';\r\nimport { apiTeacherIdGet$Plain } from '../fn/teacher/api-teacher-id-get-plain';\r\nimport { ApiTeacherIdGet$Plain$Params } from '../fn/teacher/api-teacher-id-get-plain';\r\nimport { apiTeacherIdPut } from '../fn/teacher/api-teacher-id-put';\r\nimport { ApiTeacherIdPut$Params } from '../fn/teacher/api-teacher-id-put';\r\nimport { apiTeacherPost } from '../fn/teacher/api-teacher-post';\r\nimport { ApiTeacherPost$Params } from '../fn/teacher/api-teacher-post';\r\nimport { TeacherRequest } from '../models/teacher-request';\r\nimport { TeacherRequestListPagination } from '../models/teacher-request-list-pagination';\r\nimport { ViewLevelDto } from '../models/view-level-dto';\r\nimport { ViewLevelYearsDto } from '../models/view-level-years-dto';\r\nimport { ViewSubjectDto } from '../models/view-subject-dto';\r\nimport { ViewTeacherDto } from '../models/view-teacher-dto';\r\nimport { ViewTeacherDtoIEnumerablePagination } from '../models/view-teacher-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TeacherService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiTeacherIdGet()` */\r\n static readonly ApiTeacherIdGetPath = '/api/Teacher/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherIdGet$Plain$Response(params: ApiTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiTeacherIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherIdGet$Plain(params: ApiTeacherIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewTeacherDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherIdGet$Response(params: ApiTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n return apiTeacherIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherIdGet(params: ApiTeacherIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewTeacherDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherIdPut()` */\r\n static readonly ApiTeacherIdPutPath = '/api/Teacher/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiTeacherIdPut$Response(params: ApiTeacherIdPut$Params, context?: HttpContext): Observable> {\r\n return apiTeacherIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiTeacherIdPut(params: ApiTeacherIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherIdDelete()` */\r\n static readonly ApiTeacherIdDeletePath = '/api/Teacher/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherIdDelete$Response(params: ApiTeacherIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiTeacherIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherIdDelete(params: ApiTeacherIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherGetLevelsByTeacherIdGet()` */\r\n static readonly ApiTeacherGetLevelsByTeacherIdGetPath = '/api/Teacher/getLevelsByTeacherId';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetLevelsByTeacherIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelsByTeacherIdGet$Plain$Response(params?: ApiTeacherGetLevelsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiTeacherGetLevelsByTeacherIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetLevelsByTeacherIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelsByTeacherIdGet$Plain(params?: ApiTeacherGetLevelsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiTeacherGetLevelsByTeacherIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetLevelsByTeacherIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelsByTeacherIdGet$Response(params?: ApiTeacherGetLevelsByTeacherIdGet$Params, context?: HttpContext): Observable>> {\r\n return apiTeacherGetLevelsByTeacherIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetLevelsByTeacherIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelsByTeacherIdGet(params?: ApiTeacherGetLevelsByTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n return this.apiTeacherGetLevelsByTeacherIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherGetLevelYearsByTeacherIdGet()` */\r\n static readonly ApiTeacherGetLevelYearsByTeacherIdGetPath = '/api/Teacher/getLevelYearsByTeacherId';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetLevelYearsByTeacherIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelYearsByTeacherIdGet$Plain$Response(params?: ApiTeacherGetLevelYearsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiTeacherGetLevelYearsByTeacherIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetLevelYearsByTeacherIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelYearsByTeacherIdGet$Plain(params?: ApiTeacherGetLevelYearsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiTeacherGetLevelYearsByTeacherIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetLevelYearsByTeacherIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelYearsByTeacherIdGet$Response(params?: ApiTeacherGetLevelYearsByTeacherIdGet$Params, context?: HttpContext): Observable>> {\r\n return apiTeacherGetLevelYearsByTeacherIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetLevelYearsByTeacherIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetLevelYearsByTeacherIdGet(params?: ApiTeacherGetLevelYearsByTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n return this.apiTeacherGetLevelYearsByTeacherIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherGetSubjectsByTeacherIdGet()` */\r\n static readonly ApiTeacherGetSubjectsByTeacherIdGetPath = '/api/Teacher/getSubjectsByTeacherId';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetSubjectsByTeacherIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetSubjectsByTeacherIdGet$Plain$Response(params?: ApiTeacherGetSubjectsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable>> {\r\n return apiTeacherGetSubjectsByTeacherIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetSubjectsByTeacherIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetSubjectsByTeacherIdGet$Plain(params?: ApiTeacherGetSubjectsByTeacherIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return this.apiTeacherGetSubjectsByTeacherIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetSubjectsByTeacherIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetSubjectsByTeacherIdGet$Response(params?: ApiTeacherGetSubjectsByTeacherIdGet$Params, context?: HttpContext): Observable>> {\r\n return apiTeacherGetSubjectsByTeacherIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetSubjectsByTeacherIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetSubjectsByTeacherIdGet(params?: ApiTeacherGetSubjectsByTeacherIdGet$Params, context?: HttpContext): Observable> {\r\n return this.apiTeacherGetSubjectsByTeacherIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse>): Array => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherChangeStatusPut()` */\r\n static readonly ApiTeacherChangeStatusPutPath = '/api/Teacher/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherChangeStatusPut$Response(params?: ApiTeacherChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiTeacherChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherChangeStatusPut(params?: ApiTeacherChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherGet()` */\r\n static readonly ApiTeacherGetPath = '/api/Teacher';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGet$Plain$Response(params?: ApiTeacherGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiTeacherGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGet$Plain(params?: ApiTeacherGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewTeacherDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGet$Response(params?: ApiTeacherGet$Params, context?: HttpContext): Observable> {\r\n return apiTeacherGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGet(params?: ApiTeacherGet$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewTeacherDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherPost()` */\r\n static readonly ApiTeacherPostPath = '/api/Teacher';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiTeacherPost$Response(params?: ApiTeacherPost$Params, context?: HttpContext): Observable> {\r\n return apiTeacherPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiTeacherPost(params?: ApiTeacherPost$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherGetTeacherRequsetByIdGet()` */\r\n static readonly ApiTeacherGetTeacherRequsetByIdGetPath = '/api/Teacher/GetTeacherRequsetById';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetTeacherRequsetByIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetByIdGet$Plain$Response(params?: ApiTeacherGetTeacherRequsetByIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiTeacherGetTeacherRequsetByIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetTeacherRequsetByIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetByIdGet$Plain(params?: ApiTeacherGetTeacherRequsetByIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherGetTeacherRequsetByIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): TeacherRequest => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetTeacherRequsetByIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetByIdGet$Response(params?: ApiTeacherGetTeacherRequsetByIdGet$Params, context?: HttpContext): Observable> {\r\n return apiTeacherGetTeacherRequsetByIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetTeacherRequsetByIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetByIdGet(params?: ApiTeacherGetTeacherRequsetByIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherGetTeacherRequsetByIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): TeacherRequest => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherGetTeacherRequsetsGet()` */\r\n static readonly ApiTeacherGetTeacherRequsetsGetPath = '/api/Teacher/GetTeacherRequsets';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetTeacherRequsetsGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetsGet$Plain$Response(params?: ApiTeacherGetTeacherRequsetsGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiTeacherGetTeacherRequsetsGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetTeacherRequsetsGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetsGet$Plain(params?: ApiTeacherGetTeacherRequsetsGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherGetTeacherRequsetsGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): TeacherRequestListPagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherGetTeacherRequsetsGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetsGet$Response(params?: ApiTeacherGetTeacherRequsetsGet$Params, context?: HttpContext): Observable> {\r\n return apiTeacherGetTeacherRequsetsGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherGetTeacherRequsetsGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiTeacherGetTeacherRequsetsGet(params?: ApiTeacherGetTeacherRequsetsGet$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherGetTeacherRequsetsGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): TeacherRequestListPagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiTeacherAddTeacherRequsetsPost()` */\r\n static readonly ApiTeacherAddTeacherRequsetsPostPath = '/api/Teacher/AddTeacherRequsets';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiTeacherAddTeacherRequsetsPost()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiTeacherAddTeacherRequsetsPost$Response(params?: ApiTeacherAddTeacherRequsetsPost$Params, context?: HttpContext): Observable> {\r\n return apiTeacherAddTeacherRequsetsPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiTeacherAddTeacherRequsetsPost$Response()` instead.\r\n *\r\n * This method sends `application/*+json` and handles request body of type `application/*+json`.\r\n */\r\n apiTeacherAddTeacherRequsetsPost(params?: ApiTeacherAddTeacherRequsetsPost$Params, context?: HttpContext): Observable {\r\n return this.apiTeacherAddTeacherRequsetsPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ToDoListStatus } from '../../models/to-do-list-status';\r\n\r\nexport interface ApiToDoListChangeStatusPut$Params {\r\n id?: number;\r\n status?: ToDoListStatus;\r\n}\r\n\r\nexport function apiToDoListChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiToDoListChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListChangeStatusPut.PATH = '/api/ToDoList/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ToDoListStatus } from '../../models/to-do-list-status';\r\nimport { ViewToDoListDtoIEnumerablePagination } from '../../models/view-to-do-list-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiToDoListGet$Params {\r\n status?: ToDoListStatus;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiToDoListGet(http: HttpClient, rootUrl: string, params?: ApiToDoListGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListGet.PATH, 'get');\r\n if (params) {\r\n rb.query('status', params.status, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListGet.PATH = '/api/ToDoList';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ToDoListStatus } from '../../models/to-do-list-status';\r\nimport { ViewToDoListDtoIEnumerablePagination } from '../../models/view-to-do-list-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiToDoListGet$Plain$Params {\r\n status?: ToDoListStatus;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiToDoListGet$Plain(http: HttpClient, rootUrl: string, params?: ApiToDoListGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('status', params.status, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListGet$Plain.PATH = '/api/ToDoList';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiToDoListIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiToDoListIdDelete(http: HttpClient, rootUrl: string, params: ApiToDoListIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListIdDelete.PATH = '/api/ToDoList/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewToDoListDto } from '../../models/view-to-do-list-dto';\r\n\r\nexport interface ApiToDoListIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiToDoListIdGet(http: HttpClient, rootUrl: string, params: ApiToDoListIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListIdGet.PATH = '/api/ToDoList/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewToDoListDto } from '../../models/view-to-do-list-dto';\r\n\r\nexport interface ApiToDoListIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiToDoListIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiToDoListIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListIdGet$Plain.PATH = '/api/ToDoList/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ToDoListStatus } from '../../models/to-do-list-status';\r\n\r\nexport interface ApiToDoListIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Description'?: string;\r\n'Status'?: ToDoListStatus;\r\n'Deadline'?: string;\r\n}\r\n}\r\n\r\nexport function apiToDoListIdPut(http: HttpClient, rootUrl: string, params: ApiToDoListIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListIdPut.PATH = '/api/ToDoList/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ToDoListStatus } from '../../models/to-do-list-status';\r\n\r\nexport interface ApiToDoListPost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Description'?: string;\r\n'Status'?: ToDoListStatus;\r\n'Deadline'?: string;\r\n}\r\n}\r\n\r\nexport function apiToDoListPost(http: HttpClient, rootUrl: string, params?: ApiToDoListPost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiToDoListPost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiToDoListPost.PATH = '/api/ToDoList';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiToDoListChangeStatusPut } from '../fn/to-do-list/api-to-do-list-change-status-put';\r\nimport { ApiToDoListChangeStatusPut$Params } from '../fn/to-do-list/api-to-do-list-change-status-put';\r\nimport { apiToDoListGet } from '../fn/to-do-list/api-to-do-list-get';\r\nimport { ApiToDoListGet$Params } from '../fn/to-do-list/api-to-do-list-get';\r\nimport { apiToDoListGet$Plain } from '../fn/to-do-list/api-to-do-list-get-plain';\r\nimport { ApiToDoListGet$Plain$Params } from '../fn/to-do-list/api-to-do-list-get-plain';\r\nimport { apiToDoListIdDelete } from '../fn/to-do-list/api-to-do-list-id-delete';\r\nimport { ApiToDoListIdDelete$Params } from '../fn/to-do-list/api-to-do-list-id-delete';\r\nimport { apiToDoListIdGet } from '../fn/to-do-list/api-to-do-list-id-get';\r\nimport { ApiToDoListIdGet$Params } from '../fn/to-do-list/api-to-do-list-id-get';\r\nimport { apiToDoListIdGet$Plain } from '../fn/to-do-list/api-to-do-list-id-get-plain';\r\nimport { ApiToDoListIdGet$Plain$Params } from '../fn/to-do-list/api-to-do-list-id-get-plain';\r\nimport { apiToDoListIdPut } from '../fn/to-do-list/api-to-do-list-id-put';\r\nimport { ApiToDoListIdPut$Params } from '../fn/to-do-list/api-to-do-list-id-put';\r\nimport { apiToDoListPost } from '../fn/to-do-list/api-to-do-list-post';\r\nimport { ApiToDoListPost$Params } from '../fn/to-do-list/api-to-do-list-post';\r\nimport { ViewToDoListDto } from '../models/view-to-do-list-dto';\r\nimport { ViewToDoListDtoIEnumerablePagination } from '../models/view-to-do-list-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ToDoListService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiToDoListGet()` */\r\n static readonly ApiToDoListGetPath = '/api/ToDoList';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListGet$Plain$Response(params?: ApiToDoListGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiToDoListGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListGet$Plain(params?: ApiToDoListGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewToDoListDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListGet$Response(params?: ApiToDoListGet$Params, context?: HttpContext): Observable> {\r\n return apiToDoListGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListGet(params?: ApiToDoListGet$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewToDoListDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiToDoListPost()` */\r\n static readonly ApiToDoListPostPath = '/api/ToDoList';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListPost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiToDoListPost$Response(params?: ApiToDoListPost$Params, context?: HttpContext): Observable> {\r\n return apiToDoListPost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListPost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiToDoListPost(params?: ApiToDoListPost$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListPost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiToDoListIdGet()` */\r\n static readonly ApiToDoListIdGetPath = '/api/ToDoList/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListIdGet$Plain$Response(params: ApiToDoListIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiToDoListIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListIdGet$Plain(params: ApiToDoListIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewToDoListDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListIdGet$Response(params: ApiToDoListIdGet$Params, context?: HttpContext): Observable> {\r\n return apiToDoListIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListIdGet(params: ApiToDoListIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewToDoListDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiToDoListIdPut()` */\r\n static readonly ApiToDoListIdPutPath = '/api/ToDoList/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiToDoListIdPut$Response(params: ApiToDoListIdPut$Params, context?: HttpContext): Observable> {\r\n return apiToDoListIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiToDoListIdPut(params: ApiToDoListIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiToDoListIdDelete()` */\r\n static readonly ApiToDoListIdDeletePath = '/api/ToDoList/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListIdDelete$Response(params: ApiToDoListIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiToDoListIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListIdDelete(params: ApiToDoListIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiToDoListChangeStatusPut()` */\r\n static readonly ApiToDoListChangeStatusPutPath = '/api/ToDoList/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiToDoListChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListChangeStatusPut$Response(params?: ApiToDoListChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiToDoListChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiToDoListChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiToDoListChangeStatusPut(params?: ApiToDoListChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiToDoListChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiVideoCourseChangeIsFreePut$Params {\r\n id?: number;\r\n isFree?: boolean;\r\n}\r\n\r\nexport function apiVideoCourseChangeIsFreePut(http: HttpClient, rootUrl: string, params?: ApiVideoCourseChangeIsFreePut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseChangeIsFreePut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('isFree', params.isFree, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseChangeIsFreePut.PATH = '/api/VideoCourse/ChangeIsFree';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiVideoCourseChangeStatusPut$Params {\r\n id?: number;\r\n status?: boolean;\r\n}\r\n\r\nexport function apiVideoCourseChangeStatusPut(http: HttpClient, rootUrl: string, params?: ApiVideoCourseChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseChangeStatusPut.PATH, 'put');\r\n if (params) {\r\n rb.query('id', params.id, {});\r\n rb.query('status', params.status, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseChangeStatusPut.PATH = '/api/VideoCourse/ChangeStatus';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewVideoCourseDtoIEnumerablePagination } from '../../models/view-video-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiVideoCourseGet$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n chapterId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiVideoCourseGet(http: HttpClient, rootUrl: string, params?: ApiVideoCourseGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseGet.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('chapterId', params.chapterId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseGet.PATH = '/api/VideoCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewVideoCourseDtoIEnumerablePagination } from '../../models/view-video-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiVideoCourseGet$Plain$Params {\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n chapterId?: number;\r\n SearchValue?: string;\r\n}\r\n\r\nexport function apiVideoCourseGet$Plain(http: HttpClient, rootUrl: string, params?: ApiVideoCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n rb.query('chapterId', params.chapterId, {});\r\n rb.query('SearchValue', params.SearchValue, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseGet$Plain.PATH = '/api/VideoCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewVideoCourseDtoIEnumerablePagination } from '../../models/view-video-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiVideoCourseGetStudentVideosByChapterGet$Params {\r\n chapterdId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n}\r\n\r\nexport function apiVideoCourseGetStudentVideosByChapterGet(http: HttpClient, rootUrl: string, params?: ApiVideoCourseGetStudentVideosByChapterGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseGetStudentVideosByChapterGet.PATH, 'get');\r\n if (params) {\r\n rb.query('chapterdId', params.chapterdId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseGetStudentVideosByChapterGet.PATH = '/api/VideoCourse/GetStudentVideosByChapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewVideoCourseDtoIEnumerablePagination } from '../../models/view-video-course-dto-i-enumerable-pagination';\r\n\r\nexport interface ApiVideoCourseGetStudentVideosByChapterGet$Plain$Params {\r\n chapterdId?: number;\r\n pageSize?: number;\r\n pageNumbe?: number;\r\n}\r\n\r\nexport function apiVideoCourseGetStudentVideosByChapterGet$Plain(http: HttpClient, rootUrl: string, params?: ApiVideoCourseGetStudentVideosByChapterGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseGetStudentVideosByChapterGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.query('chapterdId', params.chapterdId, {});\r\n rb.query('pageSize', params.pageSize, {});\r\n rb.query('pageNumbe', params.pageNumbe, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseGetStudentVideosByChapterGet$Plain.PATH = '/api/VideoCourse/GetStudentVideosByChapter';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiVideoCourseIdDelete$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiVideoCourseIdDelete(http: HttpClient, rootUrl: string, params: ApiVideoCourseIdDelete$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseIdDelete.PATH, 'delete');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseIdDelete.PATH = '/api/VideoCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewVideoCourseDto } from '../../models/view-video-course-dto';\r\n\r\nexport interface ApiVideoCourseIdGet$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiVideoCourseIdGet(http: HttpClient, rootUrl: string, params: ApiVideoCourseIdGet$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseIdGet.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'json', accept: 'text/json', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseIdGet.PATH = '/api/VideoCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\nimport { ViewVideoCourseDto } from '../../models/view-video-course-dto';\r\n\r\nexport interface ApiVideoCourseIdGet$Plain$Params {\r\n id: number;\r\n}\r\n\r\nexport function apiVideoCourseIdGet$Plain(http: HttpClient, rootUrl: string, params: ApiVideoCourseIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseIdGet$Plain.PATH, 'get');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: 'text/plain', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return r as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseIdGet$Plain.PATH = '/api/VideoCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiVideoCourseIdPut$Params {\r\n id: string;\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Description'?: string;\r\n'IsFree'?: boolean;\r\n'Img'?: Blob;\r\n'LessonFile'?: Blob;\r\n'Status'?: boolean;\r\n'VideoNumber'?: string;\r\n'ChapterId'?: number;\r\n}\r\n}\r\n\r\nexport function apiVideoCourseIdPut(http: HttpClient, rootUrl: string, params: ApiVideoCourseIdPut$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCourseIdPut.PATH, 'put');\r\n if (params) {\r\n rb.path('id', params.id, {});\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCourseIdPut.PATH = '/api/VideoCourse/{id}';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { StrictHttpResponse } from '../../strict-http-response';\r\nimport { RequestBuilder } from '../../request-builder';\r\n\r\n\r\nexport interface ApiVideoCoursePost$Params {\r\n body?: {\r\n'Id'?: number;\r\n'Name'?: string;\r\n'Description'?: string;\r\n'IsFree'?: boolean;\r\n'Img'?: Blob;\r\n'LessonFile'?: Blob;\r\n'Status'?: boolean;\r\n'VideoNumber'?: string;\r\n'ChapterId'?: number;\r\n}\r\n}\r\n\r\nexport function apiVideoCoursePost(http: HttpClient, rootUrl: string, params?: ApiVideoCoursePost$Params, context?: HttpContext): Observable> {\r\n const rb = new RequestBuilder(rootUrl, apiVideoCoursePost.PATH, 'post');\r\n if (params) {\r\n rb.body(params.body, 'multipart/form-data');\r\n }\r\n\r\n return http.request(\r\n rb.build({ responseType: 'text', accept: '*/*', context })\r\n ).pipe(\r\n filter((r: any): r is HttpResponse => r instanceof HttpResponse),\r\n map((r: HttpResponse) => {\r\n return (r as HttpResponse).clone({ body: undefined }) as StrictHttpResponse;\r\n })\r\n );\r\n}\r\n\r\napiVideoCoursePost.PATH = '/api/VideoCourse';\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { HttpClient, HttpContext } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '../base-service';\r\nimport { ApiConfiguration } from '../api-configuration';\r\nimport { StrictHttpResponse } from '../strict-http-response';\r\n\r\nimport { apiVideoCourseChangeIsFreePut } from '../fn/video-course/api-video-course-change-is-free-put';\r\nimport { ApiVideoCourseChangeIsFreePut$Params } from '../fn/video-course/api-video-course-change-is-free-put';\r\nimport { apiVideoCourseChangeStatusPut } from '../fn/video-course/api-video-course-change-status-put';\r\nimport { ApiVideoCourseChangeStatusPut$Params } from '../fn/video-course/api-video-course-change-status-put';\r\nimport { apiVideoCourseGet } from '../fn/video-course/api-video-course-get';\r\nimport { ApiVideoCourseGet$Params } from '../fn/video-course/api-video-course-get';\r\nimport { apiVideoCourseGet$Plain } from '../fn/video-course/api-video-course-get-plain';\r\nimport { ApiVideoCourseGet$Plain$Params } from '../fn/video-course/api-video-course-get-plain';\r\nimport { apiVideoCourseGetStudentVideosByChapterGet } from '../fn/video-course/api-video-course-get-student-videos-by-chapter-get';\r\nimport { ApiVideoCourseGetStudentVideosByChapterGet$Params } from '../fn/video-course/api-video-course-get-student-videos-by-chapter-get';\r\nimport { apiVideoCourseGetStudentVideosByChapterGet$Plain } from '../fn/video-course/api-video-course-get-student-videos-by-chapter-get-plain';\r\nimport { ApiVideoCourseGetStudentVideosByChapterGet$Plain$Params } from '../fn/video-course/api-video-course-get-student-videos-by-chapter-get-plain';\r\nimport { apiVideoCourseIdDelete } from '../fn/video-course/api-video-course-id-delete';\r\nimport { ApiVideoCourseIdDelete$Params } from '../fn/video-course/api-video-course-id-delete';\r\nimport { apiVideoCourseIdGet } from '../fn/video-course/api-video-course-id-get';\r\nimport { ApiVideoCourseIdGet$Params } from '../fn/video-course/api-video-course-id-get';\r\nimport { apiVideoCourseIdGet$Plain } from '../fn/video-course/api-video-course-id-get-plain';\r\nimport { ApiVideoCourseIdGet$Plain$Params } from '../fn/video-course/api-video-course-id-get-plain';\r\nimport { apiVideoCourseIdPut } from '../fn/video-course/api-video-course-id-put';\r\nimport { ApiVideoCourseIdPut$Params } from '../fn/video-course/api-video-course-id-put';\r\nimport { apiVideoCoursePost } from '../fn/video-course/api-video-course-post';\r\nimport { ApiVideoCoursePost$Params } from '../fn/video-course/api-video-course-post';\r\nimport { ViewVideoCourseDto } from '../models/view-video-course-dto';\r\nimport { ViewVideoCourseDtoIEnumerablePagination } from '../models/view-video-course-dto-i-enumerable-pagination';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VideoCourseService extends BaseService {\r\n constructor(config: ApiConfiguration, http: HttpClient) {\r\n super(config, http);\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseGet()` */\r\n static readonly ApiVideoCourseGetPath = '/api/VideoCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGet$Plain$Response(params?: ApiVideoCourseGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGet$Plain(params?: ApiVideoCourseGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewVideoCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGet$Response(params?: ApiVideoCourseGet$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGet(params?: ApiVideoCourseGet$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewVideoCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCoursePost()` */\r\n static readonly ApiVideoCoursePostPath = '/api/VideoCourse';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCoursePost()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiVideoCoursePost$Response(params?: ApiVideoCoursePost$Params, context?: HttpContext): Observable> {\r\n return apiVideoCoursePost(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCoursePost$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiVideoCoursePost(params?: ApiVideoCoursePost$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCoursePost$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseIdGet()` */\r\n static readonly ApiVideoCourseIdGetPath = '/api/VideoCourse/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseIdGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseIdGet$Plain$Response(params: ApiVideoCourseIdGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseIdGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseIdGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseIdGet$Plain(params: ApiVideoCourseIdGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseIdGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewVideoCourseDto => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseIdGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseIdGet$Response(params: ApiVideoCourseIdGet$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseIdGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseIdGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseIdGet(params: ApiVideoCourseIdGet$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseIdGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewVideoCourseDto => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseIdPut()` */\r\n static readonly ApiVideoCourseIdPutPath = '/api/VideoCourse/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseIdPut()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiVideoCourseIdPut$Response(params: ApiVideoCourseIdPut$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseIdPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseIdPut$Response()` instead.\r\n *\r\n * This method sends `multipart/form-data` and handles request body of type `multipart/form-data`.\r\n */\r\n apiVideoCourseIdPut(params: ApiVideoCourseIdPut$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseIdPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseIdDelete()` */\r\n static readonly ApiVideoCourseIdDeletePath = '/api/VideoCourse/{id}';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseIdDelete()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseIdDelete$Response(params: ApiVideoCourseIdDelete$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseIdDelete(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseIdDelete$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseIdDelete(params: ApiVideoCourseIdDelete$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseIdDelete$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseGetStudentVideosByChapterGet()` */\r\n static readonly ApiVideoCourseGetStudentVideosByChapterGetPath = '/api/VideoCourse/GetStudentVideosByChapter';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseGetStudentVideosByChapterGet$Plain()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGetStudentVideosByChapterGet$Plain$Response(params?: ApiVideoCourseGetStudentVideosByChapterGet$Plain$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseGetStudentVideosByChapterGet$Plain(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseGetStudentVideosByChapterGet$Plain$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGetStudentVideosByChapterGet$Plain(params?: ApiVideoCourseGetStudentVideosByChapterGet$Plain$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseGetStudentVideosByChapterGet$Plain$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewVideoCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseGetStudentVideosByChapterGet()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGetStudentVideosByChapterGet$Response(params?: ApiVideoCourseGetStudentVideosByChapterGet$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseGetStudentVideosByChapterGet(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseGetStudentVideosByChapterGet$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseGetStudentVideosByChapterGet(params?: ApiVideoCourseGetStudentVideosByChapterGet$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseGetStudentVideosByChapterGet$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): ViewVideoCourseDtoIEnumerablePagination => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseChangeStatusPut()` */\r\n static readonly ApiVideoCourseChangeStatusPutPath = '/api/VideoCourse/ChangeStatus';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseChangeStatusPut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseChangeStatusPut$Response(params?: ApiVideoCourseChangeStatusPut$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseChangeStatusPut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseChangeStatusPut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseChangeStatusPut(params?: ApiVideoCourseChangeStatusPut$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseChangeStatusPut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n /** Path part for operation `apiVideoCourseChangeIsFreePut()` */\r\n static readonly ApiVideoCourseChangeIsFreePutPath = '/api/VideoCourse/ChangeIsFree';\r\n\r\n /**\r\n * This method provides access to the full `HttpResponse`, allowing access to response headers.\r\n * To access only the response body, use `apiVideoCourseChangeIsFreePut()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseChangeIsFreePut$Response(params?: ApiVideoCourseChangeIsFreePut$Params, context?: HttpContext): Observable> {\r\n return apiVideoCourseChangeIsFreePut(this.http, this.rootUrl, params, context);\r\n }\r\n\r\n /**\r\n * This method provides access only to the response body.\r\n * To access the full response (for headers, for example), `apiVideoCourseChangeIsFreePut$Response()` instead.\r\n *\r\n * This method doesn't expect any request body.\r\n */\r\n apiVideoCourseChangeIsFreePut(params?: ApiVideoCourseChangeIsFreePut$Params, context?: HttpContext): Observable {\r\n return this.apiVideoCourseChangeIsFreePut$Response(params, context).pipe(\r\n map((r: StrictHttpResponse): void => r.body)\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { UserDto } from '../backend/models';\r\nimport {\r\n AccountService,\r\n} from '../backend/services';\r\nimport { ROLES } from './../../app-const';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthenticationService {\r\n currentUserSubject: BehaviorSubject =\r\n new BehaviorSubject(null);\r\n public currentUser: Observable;\r\n\r\n private token;\r\n public get _token(): string {\r\n return (\r\n this.token ||\r\n JSON.parse(localStorage.getItem('userToken') || 'null') ||\r\n JSON.parse(sessionStorage.getItem('userToken') || 'null')\r\n );\r\n }\r\n private set _tokenInLocal(value: string | null) {\r\n this.token = value;\r\n localStorage.setItem('userToken', JSON.stringify(value));\r\n }\r\n private set _tokenInSession(value: string | null) {\r\n this.token = value;\r\n sessionStorage.setItem('userToken', JSON.stringify(value));\r\n }\r\n\r\n userData = null;\r\n constructor(\r\n private router: Router,\r\n private userService: AccountService,\r\n ) {\r\n this.currentUser = this.currentUserSubject.asObservable();\r\n }\r\n\r\n identity(force = false): Observable {\r\n if (!this._token) {\r\n return of(null);\r\n }\r\n\r\n if (this.currentUserSubject.value && !force) {\r\n return this.currentUserSubject;\r\n } else {\r\n return this.userService.apiAccountGet().pipe(\r\n distinctUntilChanged(),\r\n map((res) => {\r\n // login successful if there's a jwt token in the response\r\n if (res) {\r\n if (!this.currentUserSubject.value || force) {\r\n this.currentUserSubject.next(\r\n res ? { ...res } : null,\r\n );\r\n }\r\n return (this.currentUserSubject.getValue() ||\r\n res ||\r\n null) as any;\r\n }\r\n this.router.navigate(['/account']);\r\n return null;\r\n }),\r\n );\r\n }\r\n }\r\n\r\n public get currentUserValue(): UserDto | null {\r\n return this.currentUserSubject.value;\r\n }\r\n\r\n login(username: string, password: string, rememberMe = true) {\r\n return this.userService\r\n .apiAccountLoginPost({\r\n body: {\r\n userNameOrPhone: username,\r\n password,\r\n },\r\n })\r\n .pipe(\r\n map((user) => {\r\n // login successful if there's a jwt token in the response\r\n if (user && user?.token) {\r\n this.identity(true).subscribe();\r\n if (rememberMe) {\r\n this._tokenInLocal = user.token;\r\n } else {\r\n this._tokenInSession = user.token;\r\n }\r\n }\r\n return user;\r\n }),\r\n );\r\n }\r\n\r\n redirectUser() {\r\n const userRoles = this.currentUserSubject.getValue()?.roles;\r\n\r\n if (userRoles?.includes(ROLES.ADMIN)) {\r\n this.router.navigate(['/admin']);\r\n } else if (userRoles?.includes(ROLES.TEACHER)) {\r\n this.router.navigate(['/teacher']);\r\n } else if (userRoles?.includes(ROLES.STUDENT)) {\r\n this.router.navigate(['/student']);\r\n } else if (userRoles?.includes(ROLES.PARENT)) {\r\n this.router.navigate(['/parent']);\r\n } else {\r\n this.router.navigate(['/']);\r\n }\r\n }\r\n\r\n logout() {\r\n this._tokenInLocal = null;\r\n this._tokenInSession = null;\r\n this.currentUserSubject.next(null);\r\n this.router.navigate(['/account/login'])\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment from 'moment';\r\nimport 'moment/locale/ar';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SpinnerService } from './spinner.service';\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LanguageService {\r\n public languages: {\r\n logo: string,\r\n name: string,\r\n code: string\r\n }[] = [{ \r\n code: 'en',\r\n logo: 'assets/img/flags/united-states.png',\r\n name: 'English'\r\n }, {\r\n code: 'ar',\r\n logo: 'assets/img/flags/egypt.png',\r\n name: 'Arabic'\r\n }];\r\n currentLang = new BehaviorSubject('');\r\n constructor(public translate: TranslateService,\r\n public spinnerService: SpinnerService,\r\n @Inject(DOCUMENT) private document: Document\r\n ) {\r\n let browserLang;\r\n this.translate.addLangs(this.languages.map(e => e.code));\r\n if (localStorage.getItem(\"lang\")) {\r\n browserLang = localStorage.getItem(\"lang\");\r\n }\r\n else {\r\n browserLang = translate.getBrowserLang();\r\n }\r\n this.setLanguage(\"ar\");\r\n }\r\n \r\n public setLanguage(lang: string) {\r\n if (lang?.match(/en|ar/)) {\r\n // this.spinnerService.showSpinner();\r\n this.translate.use(lang).subscribe();\r\n localStorage.setItem('lang', lang);\r\n if (lang === 'ar') {\r\n this.document.documentElement.dir = 'rtl';\r\n } else {\r\n this.document.documentElement.dir = 'ltr';\r\n }\r\n this.currentLang.next(lang);\r\n this.document.documentElement.lang = lang;\r\n moment.locale(lang);\r\n\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpinnerService {\r\n\r\n show : boolean = false;\r\n\r\n\r\n showSpinner(){\r\n setTimeout(() => {\r\n this.show = true;\r\n }, 0)\r\n }\r\n hideSpinner(){\r\n setTimeout(() => {\r\n \r\n this.show = false;\r\n }, 0)\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { AuthenticationService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-page404',\r\n templateUrl: './page404.component.html',\r\n styleUrls: ['./page404.component.scss']\r\n})\r\n\r\n/**\r\n * PAges-404 component\r\n */\r\nexport class Page404Component {\r\n\r\n constructor(\r\n private auth: AuthenticationService\r\n ){\r\n\r\n }\r\n\r\n\r\n redirect(){\r\n this.auth.redirectUser()\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

44

\r\n

\r\n هذه الصفحة غير موجودة\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
","","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { Router, RouterModule } from '@angular/router';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UserDto } from 'src/app/core/backend/models';\r\nimport { AuthenticationService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'mg-account-dropdown',\r\n templateUrl: './account-dropdown.component.html',\r\n styleUrls: ['./account-dropdown.component.scss'],\r\n standalone: true,\r\n imports: [CommonModule, RouterModule, NgbDropdownModule,],\r\n})\r\nexport class AccountDropdownComponent {\r\n @Input() light: boolean;\r\n\r\n acc: UserDto | null = null;\r\n constructor(private router: Router, private authService: AuthenticationService) {\r\n this.authService.identity().subscribe(acc => {\r\n this.acc = acc;\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Logout the user\r\n */\r\n logout() {\r\n\r\n this.authService.logout();\r\n }\r\n}\r\n","
\r\n \r\n
","import { CommonModule } from '@angular/common';\r\nimport { Component } from '@angular/core';\r\nimport { SpinnerService } from 'src/app/core/services/spinner.service';\r\n\r\n@Component({\r\n selector: 'mg-spinner',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss']\r\n})\r\nexport class SpinnerComponent {\r\nconstructor(\r\n public spinner: SpinnerService\r\n){}\r\n}\r\n","export const environment = {\r\n production: true,\r\n api: '',\r\n};\r\n","/**\n * @license Angular v16.2.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = \n/* @__PURE__ */ (() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationDriver }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n static { this.NOOP = ( /* @__PURE__ */new NoopAnimationDriver()); }\n}\n\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\n/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing'\n ]);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n this.afterFlush(() => { });\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [\n ...this._transitionEngine.players,\n ...this._timelineEngine.players,\n ];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static { this.initialStylesByElement = ( /* @__PURE__ */new WeakMap()); }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v16.2.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ViewEncapsulation, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport { AnimationBuilder, sequence, AnimationFactory } from '@angular/animations';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, ɵNoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\n\nclass BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this._nextAnimationId = 0;\n const typeData = { id: '0', encapsulation: ViewEncapsulation.None, styles: [], data: { animation: [] } };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n }\n build(animation) {\n const id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationBuilder }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return this._renderer.engine.players[+this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n let renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => this._rendererCache.delete(delegate);\n renderer =\n new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n this._animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: AnimationRendererFactory, deps: [{ token: i0.RendererFactory2 }, { token: i1.ɵAnimationEngine }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: AnimationRendererFactory }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: AnimationRendererFactory, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i1.ɵAnimationEngine }, { type: i0.NgZone }]; } });\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\n\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer, appRef) {\n super(doc.body, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: InjectableAnimationEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }, { type: i0.ApplicationRef }]; } });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS :\n BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.4\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, BrowserAnimationFactory as ɵBrowserAnimationFactory, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val;\n if (n === 0)\n return 0;\n if (n === 1)\n return 1;\n if (n === 2)\n return 2;\n if (n % 100 === Math.floor(n % 100) && (n % 100 >= 3 && n % 100 <= 10))\n return 3;\n if (n % 100 === Math.floor(n % 100) && (n % 100 >= 11 && n % 100 <= 99))\n return 4;\n return 5;\n}\nexport default [\"ar-EG\", [[\"ص\", \"م\"], u, u], [[\"ص\", \"م\"], u, [\"صباحًا\", \"مساءً\"]], [[\"ح\", \"ن\", \"ث\", \"ر\", \"خ\", \"ج\", \"س\"], [\"الأحد\", \"الاثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\"], u, [\"أحد\", \"إثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"]], u, [[\"ي\", \"ف\", \"م\", \"أ\", \"و\", \"ن\", \"ل\", \"غ\", \"س\", \"ك\", \"ب\", \"د\"], [\"يناير\", \"فبراير\", \"مارس\", \"أبريل\", \"مايو\", \"يونيو\", \"يوليو\", \"أغسطس\", \"سبتمبر\", \"أكتوبر\", \"نوفمبر\", \"ديسمبر\"], u], u, [[\"ق.م\", \"م\"], u, [\"قبل الميلاد\", \"ميلادي\"]], 6, [5, 6], [\"d‏/M‏/y\", \"dd‏/MM‏/y\", \"d MMMM y\", \"EEEE، d MMMM y\"], [\"h:mm a\", \"h:mm:ss a\", \"h:mm:ss a z\", \"h:mm:ss a zzzz\"], [\"{1}, {0}\", u, \"{1} في {0}\", u], [\".\", \",\", \";\", \"‎%‎\", \"‎+\", \"‎-\", \"E\", \"×\", \"‰\", \"∞\", \"ليس رقمًا\", \":\"], [\"#,##0.###\", \"#,##0%\", \"¤ #,##0.00\", \"#E0\"], \"EGP\", \"ج.م.‏\", \"جنيه مصري\", { \"AED\": [\"د.إ.‏\"], \"ARS\": [u, \"AR$\"], \"AUD\": [\"AU$\"], \"BBD\": [u, \"BB$\"], \"BHD\": [\"د.ب.‏\"], \"BMD\": [u, \"BM$\"], \"BND\": [u, \"BN$\"], \"BSD\": [u, \"BS$\"], \"BYN\": [u, \"р.\"], \"BZD\": [u, \"BZ$\"], \"CAD\": [\"CA$\"], \"CLP\": [u, \"CL$\"], \"CNY\": [\"CN¥\"], \"COP\": [u, \"CO$\"], \"CUP\": [u, \"CU$\"], \"DOP\": [u, \"DO$\"], \"DZD\": [\"د.ج.‏\"], \"EGP\": [\"ج.م.‏\", \"E£\"], \"FJD\": [u, \"FJ$\"], \"GBP\": [\"UK£\"], \"GYD\": [u, \"GY$\"], \"HKD\": [\"HK$\"], \"IQD\": [\"د.ع.‏\"], \"IRR\": [\"ر.إ.\"], \"JMD\": [u, \"JM$\"], \"JOD\": [\"د.أ.‏\"], \"JPY\": [\"JP¥\"], \"KWD\": [\"د.ك.‏\"], \"KYD\": [u, \"KY$\"], \"LBP\": [\"ل.ل.‏\", \"L£\"], \"LRD\": [u, \"$LR\"], \"LYD\": [\"د.ل.‏\"], \"MAD\": [\"د.م.‏\"], \"MRU\": [\"أ.م.\"], \"MXN\": [\"MX$\"], \"NZD\": [\"NZ$\"], \"OMR\": [\"ر.ع.‏\"], \"PHP\": [u, \"₱\"], \"QAR\": [\"ر.ق.‏\"], \"SAR\": [\"ر.س.‏\"], \"SBD\": [u, \"SB$\"], \"SDD\": [\"د.س.‏\"], \"SDG\": [\"ج.س.\"], \"SRD\": [u, \"SR$\"], \"SYP\": [\"ل.س.‏\", \"£\"], \"THB\": [\"฿\"], \"TND\": [\"د.ت.‏\"], \"TTD\": [u, \"TT$\"], \"TWD\": [\"NT$\"], \"USD\": [\"US$\"], \"UYU\": [u, \"UY$\"], \"YER\": [\"ر.ي.‏\"] }, \"rtl\", plural];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\\.?/, '').length;\n if (i === 1 && v === 0)\n return 1;\n return 5;\n}\nexport default [\"en\", [[\"a\", \"p\"], [\"AM\", \"PM\"], u], [[\"AM\", \"PM\"], u, u], [[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"], [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"], [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"], [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]], u, [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"], [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]], u, [[\"B\", \"A\"], [\"BC\", \"AD\"], [\"Before Christ\", \"Anno Domini\"]], 0, [6, 0], [\"M/d/yy\", \"MMM d, y\", \"MMMM d, y\", \"EEEE, MMMM d, y\"], [\"h:mm a\", \"h:mm:ss a\", \"h:mm:ss a z\", \"h:mm:ss a zzzz\"], [\"{1}, {0}\", u, \"{1} 'at' {0}\", u], [\".\", \",\", \";\", \"%\", \"+\", \"-\", \"E\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"#,##0%\", \"¤#,##0.00\", \"#E0\"], \"USD\", \"$\", \"US Dollar\", {}, \"ltr\", plural];\n","class TranslateHttpLoader {\n http;\n prefix;\n suffix;\n constructor(http, prefix = \"/assets/i18n/\", suffix = \".json\") {\n this.http = http;\n this.prefix = prefix;\n this.suffix = suffix;\n }\n /**\n * Gets the translations from the server\n */\n getTranslation(lang) {\n return this.http.get(`${this.prefix}${lang}${this.suffix}`);\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TranslateHttpLoader };\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'أقل من ثانية',\n two: 'أقل من ثانيتين',\n threeToTen: 'أقل من {{count}} ثواني',\n other: 'أقل من {{count}} ثانية'\n },\n xSeconds: {\n one: 'ثانية واحدة',\n two: 'ثانيتان',\n threeToTen: '{{count}} ثواني',\n other: '{{count}} ثانية'\n },\n halfAMinute: 'نصف دقيقة',\n lessThanXMinutes: {\n one: 'أقل من دقيقة',\n two: 'أقل من دقيقتين',\n threeToTen: 'أقل من {{count}} دقائق',\n other: 'أقل من {{count}} دقيقة'\n },\n xMinutes: {\n one: 'دقيقة واحدة',\n two: 'دقيقتان',\n threeToTen: '{{count}} دقائق',\n other: '{{count}} دقيقة'\n },\n aboutXHours: {\n one: 'ساعة واحدة تقريباً',\n two: 'ساعتين تقريبا',\n threeToTen: '{{count}} ساعات تقريباً',\n other: '{{count}} ساعة تقريباً'\n },\n xHours: {\n one: 'ساعة واحدة',\n two: 'ساعتان',\n threeToTen: '{{count}} ساعات',\n other: '{{count}} ساعة'\n },\n xDays: {\n one: 'يوم واحد',\n two: 'يومان',\n threeToTen: '{{count}} أيام',\n other: '{{count}} يوم'\n },\n aboutXWeeks: {\n one: 'أسبوع واحد تقريبا',\n two: 'أسبوعين تقريبا',\n threeToTen: '{{count}} أسابيع تقريبا',\n other: '{{count}} أسبوعا تقريبا'\n },\n xWeeks: {\n one: 'أسبوع واحد',\n two: 'أسبوعان',\n threeToTen: '{{count}} أسابيع',\n other: '{{count}} أسبوعا'\n },\n aboutXMonths: {\n one: 'شهر واحد تقريباً',\n two: 'شهرين تقريبا',\n threeToTen: '{{count}} أشهر تقريبا',\n other: '{{count}} شهرا تقريباً'\n },\n xMonths: {\n one: 'شهر واحد',\n two: 'شهران',\n threeToTen: '{{count}} أشهر',\n other: '{{count}} شهرا'\n },\n aboutXYears: {\n one: 'سنة واحدة تقريباً',\n two: 'سنتين تقريبا',\n threeToTen: '{{count}} سنوات تقريباً',\n other: '{{count}} سنة تقريباً'\n },\n xYears: {\n one: 'سنة واحد',\n two: 'سنتان',\n threeToTen: '{{count}} سنوات',\n other: '{{count}} سنة'\n },\n overXYears: {\n one: 'أكثر من سنة',\n two: 'أكثر من سنتين',\n threeToTen: 'أكثر من {{count}} سنوات',\n other: 'أكثر من {{count}} سنة'\n },\n almostXYears: {\n one: 'ما يقارب سنة واحدة',\n two: 'ما يقارب سنتين',\n threeToTen: 'ما يقارب {{count}} سنوات',\n other: 'ما يقارب {{count}} سنة'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var usageGroup = formatDistanceLocale[token];\n var result;\n if (typeof usageGroup === 'string') {\n result = usageGroup;\n } else if (count === 1) {\n result = usageGroup.one;\n } else if (count === 2) {\n result = usageGroup.two;\n } else if (count <= 10) {\n result = usageGroup.threeToTen.replace('{{count}}', String(count));\n } else {\n result = usageGroup.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'خلال ' + result;\n } else {\n return 'منذ ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE، do MMMM y',\n long: 'do MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss',\n long: 'HH:mm:ss',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'عند الساعة' {{time}}\",\n long: \"{{date}} 'عند الساعة' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"eeee 'الماضي عند الساعة' p\",\n yesterday: \"'الأمس عند الساعة' p\",\n today: \"'اليوم عند الساعة' p\",\n tomorrow: \"'غدا عند الساعة' p\",\n nextWeek: \"eeee 'القادم عند الساعة' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['ق', 'ب'],\n abbreviated: ['ق.م.', 'ب.م.'],\n wide: ['قبل الميلاد', 'بعد الميلاد']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['ر1', 'ر2', 'ر3', 'ر4'],\n wide: ['الربع الأول', 'الربع الثاني', 'الربع الثالث', 'الربع الرابع']\n};\nvar monthValues = {\n narrow: ['ي', 'ف', 'م', 'أ', 'م', 'ي', 'ي', 'أ', 'س', 'أ', 'ن', 'د'],\n abbreviated: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n wide: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']\n};\nvar dayValues = {\n narrow: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n short: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n abbreviated: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n wide: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n morning: 'الصباح',\n noon: 'الظهر',\n afternoon: 'بعد الظهر',\n evening: 'المساء',\n night: 'الليل',\n midnight: 'منتصف الليل'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n morning: 'الصباح',\n noon: 'الظهر',\n afternoon: 'بعد الظهر',\n evening: 'المساء',\n night: 'الليل',\n midnight: 'منتصف الليل'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n morning: 'الصباح',\n noon: 'الظهر',\n afternoon: 'بعد الظهر',\n evening: 'المساء',\n night: 'الليل',\n midnight: 'منتصف الليل'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'ص',\n pm: 'م',\n morning: 'في الصباح',\n noon: 'الظهر',\n afternoon: 'بعد الظهر',\n evening: 'في المساء',\n night: 'في الليل',\n midnight: 'منتصف الليل'\n },\n abbreviated: {\n am: 'ص',\n pm: 'م',\n morning: 'في الصباح',\n noon: 'الظهر',\n afternoon: 'بعد الظهر',\n evening: 'في المساء',\n night: 'في الليل',\n midnight: 'منتصف الليل'\n },\n wide: {\n am: 'ص',\n pm: 'م',\n morning: 'في الصباح',\n noon: 'الظهر',\n afternoon: 'بعد الظهر',\n evening: 'في المساء',\n night: 'في الليل',\n midnight: 'منتصف الليل'\n }\n};\nvar ordinalNumber = function ordinalNumber(num) {\n return String(num);\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Arabic locale (Modern Standard Arabic - Al-fussha).\n * @language Modern Standard Arabic\n * @iso-639-2 ara\n * @author Abdallah Hassan [@AbdallahAHO]{@link https://github.com/AbdallahAHO}\n * @author Koussay Haj Kacem [@essana3]{@link https://github.com/essana3}\n */\nvar locale = {\n code: 'ar',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 6 /* Saturday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /[قب]/,\n abbreviated: /[قب]\\.م\\./,\n wide: /(قبل|بعد) الميلاد/\n};\nvar parseEraPatterns = {\n any: [/قبل/, /بعد/]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /ر[1234]/,\n wide: /الربع (الأول|الثاني|الثالث|الرابع)/\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[أيفمسند]/,\n abbreviated: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/,\n wide: /^(يناير|فبراير|مارس|أبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/\n};\nvar parseMonthPatterns = {\n narrow: [/^ي/i, /^ف/i, /^م/i, /^أ/i, /^م/i, /^ي/i, /^ي/i, /^أ/i, /^س/i, /^أ/i, /^ن/i, /^د/i],\n any: [/^يناير/i, /^فبراير/i, /^مارس/i, /^أبريل/i, /^مايو/i, /^يونيو/i, /^يوليو/i, /^أغسطس/i, /^سبتمبر/i, /^أكتوبر/i, /^نوفمبر/i, /^ديسمبر/i]\n};\nvar matchDayPatterns = {\n narrow: /^[حنثرخجس]/i,\n short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n abbreviated: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i\n};\nvar parseDayPatterns = {\n narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n wide: [/^الأحد/i, /^الاثنين/i, /^الثلاثاء/i, /^الأربعاء/i, /^الخميس/i, /^الجمعة/i, /^السبت/i],\n any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/,\n any: /^(ص|م|منتصف الليل|الظهر|بعد الظهر|في الصباح|في المساء|في الليل)/\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^ص/,\n pm: /^م/,\n midnight: /منتصف الليل/,\n noon: /الظهر/,\n afternoon: /بعد الظهر/,\n morning: /في الصباح/,\n evening: /في المساء/,\n night: /في الليل/\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","
\r\n
\r\n \r\n نسخــة تجريبيـــة\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { Page404Component } from './extrapages/page404/page404.component';\r\nimport { PublicLayoutComponent } from './layouts/public-layout/public-layout.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: PublicLayoutComponent,\r\n loadChildren: () => import('./extrapages/extrapages.module').then(m => m.ExtrapagesModule),\r\n },\r\n {\r\n path: '',\r\n // component: VerticalComponent,\r\n loadChildren: () => import('./pages/pages.module').then(m => m.PagesModule),\r\n // canActivate: [AuthGuard],\r\n // data: {\r\n // roles: []\r\n // }\r\n },\r\n { path: 'account', loadChildren: () => import('./account/account.module').then(m => m.AccountModule) },\r\n {\r\n path: 'loader',\r\n loadComponent: () => import('./standalone-components/spinner/spinner.component').then(m => m.SpinnerComponent)\r\n },\r\n {\r\n path: '**',\r\n component: Page404Component\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: 'top', onSameUrlNavigation: 'ignore' })],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","import { Component, HostListener } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { filter, map } from 'rxjs';\r\nimport { logo } from 'src/app/app-const';\r\nimport { UserDto } from 'src/app/core/backend/models';\r\nimport { AuthenticationService } from 'src/app/core/services/auth.service';\r\n\r\n@Component({\r\n selector: 'mg-public-layout',\r\n templateUrl: './public-layout.component.html',\r\n styleUrls: ['./public-layout.component.scss']\r\n})\r\nexport class PublicLayoutComponent {\r\n acc: UserDto | null = null;\r\n logo = logo;\r\n scrolled = false;\r\n @HostListener('window:scroll', ['$event']) onScroll(e) {\r\n\r\n if (window.innerWidth < 700) {\r\n this.scrolled = true;\r\n return;\r\n }\r\n if (window.scrollY > 90) {\r\n this.scrolled = true;\r\n } else {\r\n this.scrolled = false;\r\n }\r\n }\r\n\r\n\r\n transparentNav = false;\r\n constructor(\r\n private auth: AuthenticationService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n ) {\r\n this.setNav();\r\n auth.identity(true).subscribe({\r\n next: (acc) => {\r\n this.acc = acc;\r\n }\r\n })\r\n }\r\n\r\n setNav() {\r\n this.router.events.pipe(\r\n filter((re) => re instanceof NavigationEnd),\r\n map(() => {\r\n let child = this.route.firstChild;\r\n while (child?.firstChild) {\r\n child = child.firstChild;\r\n }\r\n if (child?.snapshot?.data?.transparentNav) {\r\n return child.snapshot?.data?.transparentNav;\r\n }\r\n return null;\r\n })\r\n ).subscribe((res) => {\r\n if (res && window.innerWidth > 800) {\r\n this.transparentNav = true;\r\n }else{\r\n this.transparentNav = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n logout() {\r\n this.auth.logout();\r\n }\r\n\r\n redirectUser() {\r\n if (this.auth.currentUserSubject.getValue()) {\r\n this.auth.redirectUser();\r\n } else {\r\n this.router.navigate(['/account/login']);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { NgSelectConfig } from '@ng-select/ng-select';\r\nimport { filter, map } from 'rxjs';\r\nimport { projectName } from './app-const';\r\nimport { LanguageService } from './core/services/language.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = {\r\n en: projectName.en,\r\n ar: projectName.ar\r\n };\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title,\r\n private langService: LanguageService,\r\n ngSelectConfigs: NgSelectConfig,\r\n ) {\r\n ngSelectConfigs.clearAllText = 'حذف الكل';\r\n ngSelectConfigs.loadingText = 'جارٍ التحميل';\r\n ngSelectConfigs.notFoundText = 'لا يوجد بيانات';\r\n ngSelectConfigs.placeholder = 'اختر';\r\n ngSelectConfigs.typeToSearchText = 'ابحث';\r\n \r\n }\r\n\r\n ngOnInit() { \r\n this.setTitle();\r\n }\r\n\r\n setTitle(): void {\r\n const appTitle = this.titleService.getTitle();\r\n this.router\r\n .events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map(() => {\r\n let child = this.activatedRoute.firstChild;\r\n while (child?.firstChild) {\r\n child = child.firstChild;\r\n }\r\n if (child?.snapshot.data.title) {\r\n return child.snapshot.data.title;\r\n }\r\n return null;\r\n })\r\n ).subscribe((ttl: any) => {\r\n\r\n this.title.en = ttl && ttl.en ? ' - ' + ttl.en : projectName.en;\r\n this.setItNow();\r\n });\r\n }\r\n\r\n setItNow(): void {\r\n this.titleService.setTitle(this.title.en);\r\n }\r\n}\r\n","\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SWAL } from 'src/app/app-const';\r\nimport { AuthenticationService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private authenticationService: AuthenticationService,\r\n private router: Router,\r\n private translate: TranslateService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(catchError(err => {\r\n if (err.status === 401) {\r\n // auto logout if 401 response returned from api\r\n // this.authenticationService.logout();\r\n return throwError(() => 'AccessDenied');\r\n }\r\n\r\n const error = err?.error || err?.error?.error;\r\n if (error?.isLockout) {\r\n return throwError(() => ({ errorCode: 'LOCKED' }));\r\n }\r\n if (error.errors && !error?.errorCode) {\r\n let errors: { field: string, code: string }[] = Object.entries(error.errors).map((e: any) => ({\r\n field: e[0],\r\n code: e[1][0]\r\n }));\r\n SWAL('error', errors[0]?.code, '');\r\n return throwError(() => ({ errorCode: 'NO-ERROR' }));\r\n }\r\n\r\n return throwError(() => error);\r\n }));\r\n }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthenticationService } from '../services/auth.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n constructor(private auth: AuthenticationService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // add authorization header with jwt token if available\r\n try{\r\n const token = JSON.parse(localStorage.getItem('userToken') || sessionStorage.getItem('userToken') || 'null');\r\n if (token || this.auth._token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token || this.auth._token}`\r\n }\r\n });\r\n }\r\n\r\n }catch(e){\r\n localStorage.removeItem('userToken');\r\n sessionStorage.removeItem('userToken');\r\n }\r\n \r\n request = request.clone({ setHeaders: { 'Access-Control-Expose-Headers': 'Content-Disposition' } });\r\n\r\n if (request.url.toLowerCase().endsWith('.jpg') || request.url.toLowerCase().endsWith('.jpeg') || request.url.toLowerCase().endsWith('.png') || request.url.toLowerCase().endsWith('.gif')) {\r\n const cacheTtl = 3600 * 24; // day cache TTL\r\n const cacheControlHeader = `max-age=${cacheTtl}`;\r\n const modifiedReq = request.clone({ setHeaders: { 'Cache-Control': cacheControlHeader } });\r\n return next.handle(modifiedReq);\r\n }\r\n\r\n return next.handle(request);\r\n }\r\n}\r\n"," \r\n
\r\n \r\n \r\n
","import { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { UserDto } from 'src/app/core/backend/models';\r\nimport { AuthenticationService } from 'src/app/core/services/auth.service';\r\nimport { LanguageService } from 'src/app/core/services/language.service';\r\n\r\n@Component({\r\n selector: 'mg-lang-changer',\r\n standalone: true,\r\n imports: [CommonModule, NgbDropdownModule, TranslateModule],\r\n templateUrl: './lang-changer.component.html',\r\n styleUrls: ['./lang-changer.component.scss']\r\n})\r\nexport class LangChangerComponent {\r\n listLang = [\r\n // { text: 'English', flag: 'assets/images/flags/us.png', lang: 'en' },\r\n { text: 'Arabic', flag: 'assets/images/flags/ar.png', lang: 'ar' }\r\n ];\r\n element;\r\n cookieValue;\r\n flagvalue;\r\n countryName;\r\n valueset;\r\n\r\n acc: UserDto | null = null;\r\n constructor(@Inject(DOCUMENT) private document: any, private router: Router, private authService: AuthenticationService,\r\n public languageService: LanguageService,\r\n public translate: TranslateService,\r\n ) {\r\n this.authService.identity().subscribe(acc => {\r\n this.acc = acc;\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n \r\n \r\n this.cookieValue =localStorage.getItem('lang');\r\n const val = this.listLang.filter(x => x.lang === this.cookieValue);\r\n this.countryName = val.map(element => element.text)[0];\r\n if (val.length === 0) {\r\n if (this.flagvalue === undefined) { this.valueset = 'assets/images/flags/us.jpg'; }\r\n } else {\r\n this.flagvalue = val.map(element => element.flag);\r\n }\r\n }\r\n\r\n setLanguage(text: string, lang: string, flag: string) {\r\n this.countryName = text;\r\n this.flagvalue = flag;\r\n this.cookieValue = lang;\r\n this.languageService.setLanguage(lang);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'mg-system-switcher',\r\n templateUrl: './system-switcher.component.html',\r\n styleUrls: ['./system-switcher.component.scss'],\r\n standalone: true,\r\n imports: [RouterModule, CommonModule]\r\n})\r\nexport default class SystemSwitcherComponent {\r\n @Input() light: boolean;\r\n}\r\n","\r\n\r\n ","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { LangChangerComponent } from './lang-changer/lang-changer.component';\r\n\r\nimport { NgbCollapseModule, NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\nimport { SimplebarAngularModule } from 'simplebar-angular';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { LanguageService } from '../core/services/language.service';\r\nimport { RoleDirective } from '../shared/directives/app-permissions.directive';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { HorizontalComponent } from './horizontal/horizontal.component';\r\nimport { HorizontaltopbarComponent } from './horizontaltopbar/horizontaltopbar.component';\r\nimport { LayoutComponent } from './layout.component';\r\nimport { NotificationsComponent } from './notifications/notifications.component';\r\nimport { RightsidebarComponent } from './rightsidebar/rightsidebar.component';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { AccountDropdownComponent } from './topbar/account-dropdown/account-dropdown.component';\r\nimport SystemSwitcherComponent from './topbar/system-switcher/system-switcher.component';\r\nimport { TopbarComponent } from './topbar/topbar.component';\r\nimport { LeftSidebarComponent } from './vertical/left-sidebar/left-sidebar.component';\r\nimport { VerticalComponent } from './vertical/vertical.component';\r\nimport { PublicLayoutComponent } from './public-layout/public-layout.component';\r\n\r\n@NgModule({\r\n // tslint:disable-next-line: max-line-length\r\n declarations: [LayoutComponent,\r\n SidebarComponent,\r\n TopbarComponent,\r\n FooterComponent, \r\n NotificationsComponent,\r\n RightsidebarComponent,\r\n HorizontalComponent,\r\n VerticalComponent,\r\n HorizontaltopbarComponent,\r\n LeftSidebarComponent,\r\n PublicLayoutComponent,\r\n ], \r\n\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n LangChangerComponent,\r\n RouterModule,\r\n NgbDropdownModule,\r\n RoleDirective,\r\n ClickOutsideModule,\r\n NgbCollapseModule,\r\n NgbTooltipModule,\r\n SystemSwitcherComponent,\r\n AccountDropdownComponent,\r\n SimplebarAngularModule\r\n ],\r\n providers: [LanguageService]\r\n})\r\nexport class LayoutsModule { }\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\nimport { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ApiConfiguration, ApiConfigurationParams } from './api-configuration';\r\n\r\nimport { AccountService } from './services/account.service';\r\nimport { ActivityService } from './services/activity.service';\r\nimport { BannerService } from './services/banner.service';\r\nimport { ChapterService } from './services/chapter.service';\r\nimport { CommentService } from './services/comment.service';\r\nimport { CourseService } from './services/course.service';\r\nimport { ExamService } from './services/exam.service';\r\nimport { LevelService } from './services/level.service';\r\nimport { LevelYearsService } from './services/level-years.service';\r\nimport { NotificationService } from './services/notification.service';\r\nimport { ParentService } from './services/parent.service';\r\nimport { QuestionService } from './services/question.service';\r\nimport { RateCourseService } from './services/rate-course.service';\r\nimport { RateTeacherService } from './services/rate-teacher.service';\r\nimport { RateVideoService } from './services/rate-video.service';\r\nimport { StatsService } from './services/stats.service';\r\nimport { StudentService } from './services/student.service';\r\nimport { StudentExamService } from './services/student-exam.service';\r\nimport { SubjectService } from './services/subject.service';\r\nimport { TeacherService } from './services/teacher.service';\r\nimport { ToDoListService } from './services/to-do-list.service';\r\nimport { VideoCourseService } from './services/video-course.service';\r\n\r\n/**\r\n * Module that provides all services and configuration.\r\n */\r\n@NgModule({\r\n imports: [],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n AccountService,\r\n ActivityService,\r\n BannerService,\r\n ChapterService,\r\n CommentService,\r\n CourseService,\r\n ExamService,\r\n LevelService,\r\n LevelYearsService,\r\n NotificationService,\r\n ParentService,\r\n QuestionService,\r\n RateCourseService,\r\n RateTeacherService,\r\n RateVideoService,\r\n StatsService,\r\n StudentService,\r\n StudentExamService,\r\n SubjectService,\r\n TeacherService,\r\n ToDoListService,\r\n VideoCourseService,\r\n ApiConfiguration\r\n ],\r\n})\r\nexport class BEApiModule {\r\n static forRoot(params: ApiConfigurationParams): ModuleWithProviders {\r\n return {\r\n ngModule: BEApiModule,\r\n providers: [\r\n {\r\n provide: ApiConfiguration,\r\n useValue: params\r\n }\r\n ]\r\n }\r\n }\r\n\r\n constructor( \r\n @Optional() @SkipSelf() parentModule: BEApiModule,\r\n @Optional() http: HttpClient\r\n ) {\r\n if (parentModule) {\r\n throw new Error('BEApiModule is already loaded. Import in your base AppModule only.');\r\n }\r\n if (!http) {\r\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\r\n 'See also https://github.com/angular/angular/issues/20575');\r\n }\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { DEFAULT_CURRENCY_CODE, LOCALE_ID, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { LottieModule, provideLottieOptions } from 'ngx-lottie';\r\n\r\nimport { NgbAccordionModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\n\r\nimport { NZ_DATE_LOCALE, ar_EG, en_US } from 'ng-zorro-antd/i18n';\r\n\r\nimport { DATE_PIPE_DEFAULT_OPTIONS, registerLocaleData } from '@angular/common';\r\nimport ar from '@angular/common/locales/ar-EG';\r\nimport en from '@angular/common/locales/en';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { ar as dateLocale } from 'date-fns/locale';\r\nimport player from 'lottie-web';\r\nimport { NzConfig, provideNzConfig } from 'ng-zorro-antd/core/config';\r\nimport { NZ_I18N } from 'ng-zorro-antd/i18n';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { ErrorInterceptor } from './core/helpers/error.interceptor';\r\nimport { JwtInterceptor } from './core/helpers/jwt.interceptor';\r\nimport { LayoutsModule } from './layouts/layouts.module';\r\nimport { SpinnerComponent } from './standalone-components/spinner/spinner.component';\r\nregisterLocaleData(en);\r\nregisterLocaleData(ar);\r\n\r\n\r\nconst ngZorroConfig: NzConfig = {\r\n message: { nzTop: 120 },\r\n notification: { nzTop: 240 },\r\n form: {\r\n nzNoColon: true,\r\n }\r\n};\r\n\r\n\r\n\r\nimport { BEApiModule } from './core/backend/be-api.module';\r\n\r\n\r\n\r\n\r\nexport function createTranslateLoader(http: HttpClient): any {\r\n return new TranslateHttpLoader(http, 'assets/i18n/', '.json');\r\n}\r\n\r\nexport function playerFactory() {\r\n return player;\r\n}\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: createTranslateLoader,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n LayoutsModule,\r\n SpinnerComponent,\r\n AppRoutingModule,\r\n BEApiModule.forRoot({\r\n rootUrl: environment.api\r\n }),\r\n CarouselModule,\r\n LottieModule.forRoot({ player: playerFactory }),\r\n NgbAccordionModule,\r\n NgbNavModule,\r\n ],\r\n bootstrap: [AppComponent],\r\n providers: [\r\n provideLottieOptions({\r\n player: () => player,\r\n }),\r\n provideNzConfig(ngZorroConfig),\r\n\r\n {\r\n provide: NZ_I18N,\r\n useFactory: (localId: string) => {\r\n if (localId.includes('ar')) {\r\n return ar_EG;\r\n\r\n } else {\r\n return en_US;\r\n\r\n }\r\n },\r\n deps: [LOCALE_ID]\r\n },\r\n {\r\n provide: NZ_DATE_LOCALE,\r\n useValue: dateLocale,\r\n },\r\n {\r\n provide: LOCALE_ID,\r\n useValue: 'ar-EG',\r\n },\r\n {\r\n provide: DEFAULT_CURRENCY_CODE,\r\n useValue: 'SR',\r\n },\r\n\r\n // { provide: DATE_PIPE_DEFAULT_TIMEZONE, useValue: '+0000' },\r\n {\r\n provide: DATE_PIPE_DEFAULT_OPTIONS,\r\n useValue: {\r\n dateFormat: 'd MMMM yyyy hh:mm a',\r\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n }\r\n },\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n ],\r\n})\r\n\r\n\r\nexport class AppModule {\r\n\r\n\r\n}\r\n","/// \r\n\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n// Enables Right to left alignment for all controls\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","import { Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID, NgZone, } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nvar ClickOutsideDirective = (function () {\n function ClickOutsideDirective(_el, _ngZone, platformId) {\n this._el = _el;\n this._ngZone = _ngZone;\n this.platformId = platformId;\n this.clickOutsideEnabled = true;\n this.attachOutsideOnClick = false;\n this.delayClickOutsideInit = false;\n this.emitOnBlur = false;\n this.exclude = '';\n this.excludeBeforeClick = false;\n this.clickOutsideEvents = '';\n this.clickOutside = new EventEmitter();\n this._nodesExcluded = [];\n this._events = ['click'];\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n }\n ClickOutsideDirective.prototype.ngOnInit = function () {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this._init();\n };\n ClickOutsideDirective.prototype.ngOnDestroy = function () {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n };\n ClickOutsideDirective.prototype.ngOnChanges = function (changes) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\n this._init();\n }\n };\n ClickOutsideDirective.prototype._init = function () {\n if (this.clickOutsideEvents !== '') {\n this._events = this.clickOutsideEvents.split(',').map(function (e) { return e.trim(); });\n }\n this._excludeCheck();\n if (this.attachOutsideOnClick) {\n this._initAttachOutsideOnClickListener();\n }\n else {\n this._initOnClickBody();\n }\n if (this.emitOnBlur) {\n this._initWindowBlurListener();\n }\n };\n ClickOutsideDirective.prototype._initOnClickBody = function () {\n if (this.delayClickOutsideInit) {\n setTimeout(this._initClickOutsideListener.bind(this));\n }\n else {\n this._initClickOutsideListener();\n }\n };\n ClickOutsideDirective.prototype._excludeCheck = function () {\n if (this.exclude) {\n try {\n var nodes = Array.from(document.querySelectorAll(this.exclude));\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n }\n catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n };\n ClickOutsideDirective.prototype._onClickBody = function (ev) {\n if (!this.clickOutsideEnabled) {\n return;\n }\n if (this.excludeBeforeClick) {\n this._excludeCheck();\n }\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\n this._emit(ev);\n if (this.attachOutsideOnClick) {\n this._removeClickOutsideListener();\n }\n }\n };\n ClickOutsideDirective.prototype._onWindowBlur = function (ev) {\n var _this = this;\n setTimeout(function () {\n if (!document.hidden) {\n _this._emit(ev);\n }\n });\n };\n ClickOutsideDirective.prototype._emit = function (ev) {\n var _this = this;\n if (!this.clickOutsideEnabled) {\n return;\n }\n this._ngZone.run(function () { return _this.clickOutside.emit(ev); });\n };\n ClickOutsideDirective.prototype._shouldExclude = function (target) {\n for (var _i = 0, _a = this._nodesExcluded; _i < _a.length; _i++) {\n var excludedNode = _a[_i];\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n return false;\n };\n ClickOutsideDirective.prototype._initClickOutsideListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return document.addEventListener(e, _this._onClickBody); });\n });\n };\n ClickOutsideDirective.prototype._removeClickOutsideListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return document.removeEventListener(e, _this._onClickBody); });\n });\n };\n ClickOutsideDirective.prototype._initAttachOutsideOnClickListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return _this._el.nativeElement.addEventListener(e, _this._initOnClickBody); });\n });\n };\n ClickOutsideDirective.prototype._removeAttachOutsideOnClickListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._events.forEach(function (e) { return _this._el.nativeElement.removeEventListener(e, _this._initOnClickBody); });\n });\n };\n ClickOutsideDirective.prototype._initWindowBlurListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n window.addEventListener('blur', _this._onWindowBlur);\n });\n };\n ClickOutsideDirective.prototype._removeWindowBlurListener = function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n window.removeEventListener('blur', _this._onWindowBlur);\n });\n };\n ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });\n ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ClickOutsideDirective, selector: \"[clickOutside]\", inputs: { clickOutsideEnabled: \"clickOutsideEnabled\", attachOutsideOnClick: \"attachOutsideOnClick\", delayClickOutsideInit: \"delayClickOutsideInit\", emitOnBlur: \"emitOnBlur\", exclude: \"exclude\", excludeBeforeClick: \"excludeBeforeClick\", clickOutsideEvents: \"clickOutsideEvents\" }, outputs: { clickOutside: \"clickOutside\" }, usesOnChanges: true, ngImport: i0 });\n return ClickOutsideDirective;\n}());\nexport { ClickOutsideDirective };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ClickOutsideDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[clickOutside]' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { clickOutsideEnabled: [{\n type: Input\n }], attachOutsideOnClick: [{\n type: Input\n }], delayClickOutsideInit: [{\n type: Input\n }], emitOnBlur: [{\n type: Input\n }], exclude: [{\n type: Input\n }], excludeBeforeClick: [{\n type: Input\n }], clickOutsideEvents: [{\n type: Input\n }], clickOutside: [{\n type: Output\n }] } });\n","import { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport * as i0 from \"@angular/core\";\nvar ClickOutsideModule = (function () {\n function ClickOutsideModule() {\n }\n ClickOutsideModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ClickOutsideModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n ClickOutsideModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ClickOutsideModule, declarations: [ClickOutsideDirective], exports: [ClickOutsideDirective] });\n ClickOutsideModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ClickOutsideModule });\n return ClickOutsideModule;\n}());\nexport { ClickOutsideModule };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ClickOutsideModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective]\n }]\n }] });\n","import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._subject = null;\n this._refCount = 0;\n this._connection = null;\n if (hasLift(source)) {\n this.lift = source.lift;\n }\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n _teardown() {\n this._refCount = 0;\n const { _connection } = this;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n const subject = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject, undefined, () => {\n this._teardown();\n subject.complete();\n }, (err) => {\n this._teardown();\n subject.error(err);\n }, () => this._teardown())));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { innerFrom } from './innerFrom';\nimport { popResultSelector } from '../util/args';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { createObject } from '../util/createObject';\nexport function forkJoin(...args) {\n const resultSelector = popResultSelector(args);\n const { args: sources, keys } = argsArgArrayOrObject(args);\n const result = new Observable((subscriber) => {\n const { length } = sources;\n if (!length) {\n subscriber.complete();\n return;\n }\n const values = new Array(length);\n let remainingCompletions = length;\n let remainingEmissions = length;\n for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n let hasValue = false;\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, () => remainingCompletions--, undefined, () => {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\n","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable((subscriber) => {\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory;\n const init = (subscriber) => subscriber.error(errorFactory());\n return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init);\n}\n","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {\n let intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable((subscriber) => {\n let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n let n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip(...args) {\n const resultSelector = popResultSelector(args);\n const sources = argsOrArgArray(args);\n return sources.length\n ? new Observable((subscriber) => {\n let buffers = sources.map(() => []);\n let completed = sources.map(() => false);\n subscriber.add(() => {\n buffers = completed = null;\n });\n for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n buffers[sourceIndex].push(value);\n if (buffers.every((buffer) => buffer.length)) {\n const result = buffers.map((buffer) => buffer.shift());\n subscriber.next(resultSelector ? resultSelector(...result) : result);\n if (buffers.some((buffer, i) => !buffer.length && completed[i])) {\n subscriber.complete();\n }\n }\n }, () => {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n }\n return () => {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = asyncScheduler) {\n return audit(() => timer(duration, scheduler));\n}\n","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue = null;\n let durationSubscriber = null;\n let isComplete = false;\n const endDuration = () => {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n const cleanupDuration = () => {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, () => {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate((source, subscriber) => {\n let innerSub = null;\n let syncUnsub = false;\n let handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler = asyncScheduler) {\n return operate((source, subscriber) => {\n let activeTask = null;\n let lastValue = null;\n let lastTime = null;\n const emit = () => {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n const targetTime = lastTime + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, () => {\n emit();\n subscriber.complete();\n }, undefined, () => {\n lastValue = activeTask = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nimport { innerFrom } from '../observable/innerFrom';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return (source) => concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n }\n return mergeMap((value, index) => innerFrom(delayDurationSelector(value, index)).pipe(take(1), mapTo(value)));\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler = asyncScheduler) {\n const duration = timer(due, scheduler);\n return delayWhen(() => duration);\n}\n","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector = identity) {\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate((source, subscriber) => {\n let previousKey;\n let first = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","import { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate((source, subscriber) => {\n let connection = null;\n source._refCount++;\n const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n const sharedConnection = source._connection;\n const conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return (source, subscriber) => {\n let hasState = hasSeed;\n let state = seed;\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (() => {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on(...args)).subscribe(onSubscriber);\n}\n","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n ({ bufferSize = Infinity, windowTime = Infinity, refCount = false, scheduler } = configOrBufferSize);\n }\n else {\n bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount,\n });\n}\n","import { filter } from './filter';\nexport function skip(count) {\n return filter((_, index) => count <= index);\n}\n","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom(...inputs) {\n const project = popResultSelector(inputs);\n return operate((source, subscriber) => {\n const len = inputs.length;\n const otherValues = new Array(len);\n let hasValue = inputs.map(() => false);\n let ready = false;\n for (let i = 0; i < len; i++) {\n innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (ready) {\n const values = [value, ...otherValues];\n subscriber.next(project ? project(...values) : values);\n }\n }));\n });\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","export const intervalProvider = {\n setInterval(handler, timeout, ...args) {\n const { delegate } = intervalProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n var _a;\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(_scheduler, id, delay = 0) {\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, _delay) {\n let errored = false;\n let errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this._active = false;\n }\n flush(action) {\n const { actions } = this;\n if (this._active) {\n actions.push(action);\n return;\n }\n let error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Subscription } from '../Subscription';\nexport const animationFrameProvider = {\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this._active = true;\n const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n var _a;\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n const { actions } = scheduler;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n }\n}\n","let nextHandle = 1;\nlet resolved;\nconst activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport const Immediate = {\n setImmediate(cb) {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n clearImmediate(handle) {\n findAndClearHandle(handle);\n },\n};\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n","import { Immediate } from '../util/Immediate';\nconst { setImmediate, clearImmediate } = Immediate;\nexport const immediateProvider = {\n setImmediate(...args) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate)(...args);\n },\n clearImmediate(handle) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport const asapScheduler = new AsapScheduler(AsapAction);\nexport const asap = asapScheduler;\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AsapScheduler extends AsyncScheduler {\n flush(action) {\n this._active = true;\n const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nexport class AsapAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n var _a;\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n const { actions } = scheduler;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n immediateProvider.clearImmediate(id);\n if (scheduler._scheduled === id) {\n scheduler._scheduled = undefined;\n }\n }\n return undefined;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n","export function identity(x) {\n return x;\n}\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from './isFunction';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe)));\n}\n","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * simplebar-core - v1.2.4\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport { throttle, debounce } from 'lodash-es';\nimport canUseDOM from 'can-use-dom';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar cachedScrollbarWidth = null;\nvar cachedDevicePixelRatio = null;\nif (canUseDOM) {\n window.addEventListener('resize', function () {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null) {\n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n var body = document.body;\n var box = document.createElement('div');\n box.classList.add('simplebar-hide-scrollbar');\n body.appendChild(box);\n var width = box.getBoundingClientRect().right;\n body.removeChild(box);\n cachedScrollbarWidth = width;\n }\n return cachedScrollbarWidth;\n}\n\nfunction getElementWindow$1(element) {\n if (!element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView) {\n return window;\n }\n return element.ownerDocument.defaultView;\n}\nfunction getElementDocument$1(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n return element.ownerDocument;\n}\n// Helper function to retrieve options from element attributes\nvar getOptions$1 = function (obj) {\n var initialObj = {};\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (_, chr) { return chr.toUpperCase(); });\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n }, initialObj);\n return options;\n};\nfunction addClasses$1(el, classes) {\n var _a;\n if (!el)\n return;\n (_a = el.classList).add.apply(_a, classes.split(' '));\n}\nfunction removeClasses$1(el, classes) {\n if (!el)\n return;\n classes.split(' ').forEach(function (className) {\n el.classList.remove(className);\n });\n}\nfunction classNamesToQuery$1(classNames) {\n return \".\".concat(classNames.split(' ').join('.'));\n}\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getElementWindow: getElementWindow$1,\n getElementDocument: getElementDocument$1,\n getOptions: getOptions$1,\n addClasses: addClasses$1,\n removeClasses: removeClasses$1,\n classNamesToQuery: classNamesToQuery$1\n});\n\nvar getElementWindow = getElementWindow$1, getElementDocument = getElementDocument$1, getOptions = getOptions$1, addClasses = addClasses$1, removeClasses = removeClasses$1, classNamesToQuery = classNamesToQuery$1;\nvar SimpleBarCore = /** @class */ (function () {\n function SimpleBarCore(element, options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.removePreventClickId = null;\n this.minScrollbarWidth = 20;\n this.stopScrollDelay = 175;\n this.isScrolling = false;\n this.isMouseEntering = false;\n this.scrollXTicking = false;\n this.scrollYTicking = false;\n this.wrapperEl = null;\n this.contentWrapperEl = null;\n this.contentEl = null;\n this.offsetEl = null;\n this.maskEl = null;\n this.placeholderEl = null;\n this.heightAutoObserverWrapperEl = null;\n this.heightAutoObserverEl = null;\n this.rtlHelpers = null;\n this.scrollbarWidth = 0;\n this.resizeObserver = null;\n this.mutationObserver = null;\n this.elStyles = null;\n this.isRtl = null;\n this.mouseX = 0;\n this.mouseY = 0;\n this.onMouseMove = function () { };\n this.onWindowResize = function () { };\n this.onStopScrolling = function () { };\n this.onMouseEntered = function () { };\n /**\n * On scroll event handling\n */\n this.onScroll = function () {\n var elWindow = getElementWindow(_this.el);\n if (!_this.scrollXTicking) {\n elWindow.requestAnimationFrame(_this.scrollX);\n _this.scrollXTicking = true;\n }\n if (!_this.scrollYTicking) {\n elWindow.requestAnimationFrame(_this.scrollY);\n _this.scrollYTicking = true;\n }\n if (!_this.isScrolling) {\n _this.isScrolling = true;\n addClasses(_this.el, _this.classNames.scrolling);\n }\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.onStopScrolling();\n };\n this.scrollX = function () {\n if (_this.axis.x.isOverflowing) {\n _this.positionScrollbar('x');\n }\n _this.scrollXTicking = false;\n };\n this.scrollY = function () {\n if (_this.axis.y.isOverflowing) {\n _this.positionScrollbar('y');\n }\n _this.scrollYTicking = false;\n };\n this._onStopScrolling = function () {\n removeClasses(_this.el, _this.classNames.scrolling);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isScrolling = false;\n };\n this.onMouseEnter = function () {\n if (!_this.isMouseEntering) {\n addClasses(_this.el, _this.classNames.mouseEntered);\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.isMouseEntering = true;\n }\n _this.onMouseEntered();\n };\n this._onMouseEntered = function () {\n removeClasses(_this.el, _this.classNames.mouseEntered);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isMouseEntering = false;\n };\n this._onMouseMove = function (e) {\n _this.mouseX = e.clientX;\n _this.mouseY = e.clientY;\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseMoveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseMoveForAxis('y');\n }\n };\n this.onMouseLeave = function () {\n _this.onMouseMove.cancel();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseLeaveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseLeaveForAxis('y');\n }\n _this.mouseX = -1;\n _this.mouseY = -1;\n };\n this._onWindowResize = function () {\n // Recalculate scrollbarWidth in case it's a zoom\n _this.scrollbarWidth = _this.getScrollbarWidth();\n _this.hideNativeScrollbar();\n };\n this.onPointerEvent = function (e) {\n if (!_this.axis.x.track.el ||\n !_this.axis.y.track.el ||\n !_this.axis.x.scrollbar.el ||\n !_this.axis.y.scrollbar.el)\n return;\n var isWithinTrackXBounds, isWithinTrackYBounds;\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);\n }\n // If any pointer event is called on the scrollbar\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Prevent event leaking\n e.stopPropagation();\n if (e.type === 'pointerdown' && e.pointerType !== 'touch') {\n if (isWithinTrackXBounds) {\n _this.axis.x.scrollbar.rect =\n _this.axis.x.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {\n _this.onDragStart(e, 'x');\n }\n else {\n _this.onTrackClick(e, 'x');\n }\n }\n if (isWithinTrackYBounds) {\n _this.axis.y.scrollbar.rect =\n _this.axis.y.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {\n _this.onDragStart(e, 'y');\n }\n else {\n _this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n /**\n * Drag scrollbar handle\n */\n this.drag = function (e) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n if (!_this.draggedAxis || !_this.contentWrapperEl)\n return;\n var eventOffset;\n var track = _this.axis[_this.draggedAxis].track;\n var trackSize = (_b = (_a = track.rect) === null || _a === void 0 ? void 0 : _a[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n var contentSize = (_d = (_c = _this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c[_this.axis[_this.draggedAxis].scrollSizeAttr]) !== null && _d !== void 0 ? _d : 0;\n var hostSize = parseInt((_f = (_e = _this.elStyles) === null || _e === void 0 ? void 0 : _e[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _f !== void 0 ? _f : '0px', 10);\n e.preventDefault();\n e.stopPropagation();\n if (_this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n }\n else {\n eventOffset = e.pageX;\n }\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n var dragPos = eventOffset -\n ((_h = (_g = track.rect) === null || _g === void 0 ? void 0 : _g[_this.axis[_this.draggedAxis].offsetAttr]) !== null && _h !== void 0 ? _h : 0) -\n _this.axis[_this.draggedAxis].dragOffset;\n dragPos = _this.draggedAxis === 'x' && _this.isRtl\n ? ((_k = (_j = track.rect) === null || _j === void 0 ? void 0 : _j[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _k !== void 0 ? _k : 0) -\n scrollbar.size -\n dragPos\n : dragPos;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n var dragPerc = dragPos / (trackSize - scrollbar.size);\n // Scroll the content by the same percentage.\n var scrollPos = dragPerc * (contentSize - hostSize);\n // Fix browsers inconsistency on RTL\n if (_this.draggedAxis === 'x' && _this.isRtl) {\n scrollPos = ((_l = SimpleBarCore.getRtlHelpers()) === null || _l === void 0 ? void 0 : _l.isScrollingToNegative)\n ? -scrollPos\n : scrollPos;\n }\n _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] =\n scrollPos;\n };\n /**\n * End scroll handle drag\n */\n this.onEndDrag = function (e) {\n var elDocument = getElementDocument(_this.el);\n var elWindow = getElementWindow(_this.el);\n e.preventDefault();\n e.stopPropagation();\n removeClasses(_this.el, _this.classNames.dragging);\n elDocument.removeEventListener('mousemove', _this.drag, true);\n elDocument.removeEventListener('mouseup', _this.onEndDrag, true);\n _this.removePreventClickId = elWindow.setTimeout(function () {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', _this.preventClick, true);\n elDocument.removeEventListener('dblclick', _this.preventClick, true);\n _this.removePreventClickId = null;\n });\n };\n /**\n * Handler to ignore click events during drag\n */\n this.preventClick = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n this.el = element;\n this.options = __assign(__assign({}, SimpleBarCore.defaultOptions), options);\n this.classNames = __assign(__assign({}, SimpleBarCore.defaultOptions.classNames), options.classNames);\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n }\n };\n if (typeof this.el !== 'object' || !this.el.nodeName) {\n throw new Error(\"Argument passed to SimpleBar must be an HTML element instead of \".concat(this.el));\n }\n this.onMouseMove = throttle(this._onMouseMove, 64);\n this.onWindowResize = debounce(this._onWindowResize, 64, { leading: true });\n this.onStopScrolling = debounce(this._onStopScrolling, this.stopScrollDelay);\n this.onMouseEntered = debounce(this._onMouseEntered, this.stopScrollDelay);\n this.init();\n }\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n SimpleBarCore.getRtlHelpers = function () {\n if (SimpleBarCore.rtlHelpers) {\n return SimpleBarCore.rtlHelpers;\n }\n var dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '
';\n var scrollbarDummyEl = dummyDiv.firstElementChild;\n var dummyChild = scrollbarDummyEl === null || scrollbarDummyEl === void 0 ? void 0 : scrollbarDummyEl.firstElementChild;\n if (!dummyChild)\n return null;\n document.body.appendChild(scrollbarDummyEl);\n scrollbarDummyEl.scrollLeft = 0;\n var dummyContainerOffset = SimpleBarCore.getOffset(scrollbarDummyEl);\n var dummyChildOffset = SimpleBarCore.getOffset(dummyChild);\n scrollbarDummyEl.scrollLeft = -999;\n var dummyChildOffsetAfterScroll = SimpleBarCore.getOffset(dummyChild);\n document.body.removeChild(scrollbarDummyEl);\n SimpleBarCore.rtlHelpers = {\n // determines if the scrolling is responding with negative values\n isScrollOriginAtZero: dummyContainerOffset.left !== dummyChildOffset.left,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isScrollingToNegative: dummyChildOffset.left !== dummyChildOffsetAfterScroll.left\n };\n return SimpleBarCore.rtlHelpers;\n };\n SimpleBarCore.prototype.getScrollbarWidth = function () {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if ((this.contentWrapperEl &&\n getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n .display === 'none') ||\n 'scrollbarWidth' in document.documentElement.style ||\n '-ms-overflow-style' in document.documentElement.style) {\n return 0;\n }\n else {\n return scrollbarWidth();\n }\n }\n catch (e) {\n return scrollbarWidth();\n }\n };\n SimpleBarCore.getOffset = function (el) {\n var rect = el.getBoundingClientRect();\n var elDocument = getElementDocument(el);\n var elWindow = getElementWindow(el);\n return {\n top: rect.top +\n (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left: rect.left +\n (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n };\n SimpleBarCore.prototype.init = function () {\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n this.rtlHelpers = SimpleBarCore.getRtlHelpers();\n this.scrollbarWidth = this.getScrollbarWidth();\n this.recalculate();\n this.initListeners();\n }\n };\n SimpleBarCore.prototype.initDOM = function () {\n var _a, _b;\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.wrapper));\n this.contentWrapperEl =\n this.options.scrollableNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentWrapper));\n this.contentEl =\n this.options.contentNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentEl));\n this.offsetEl = this.el.querySelector(classNamesToQuery(this.classNames.offset));\n this.maskEl = this.el.querySelector(classNamesToQuery(this.classNames.mask));\n this.placeholderEl = this.findChild(this.wrapperEl, classNamesToQuery(this.classNames.placeholder));\n this.heightAutoObserverWrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverWrapperEl));\n this.heightAutoObserverEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverEl));\n this.axis.x.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.horizontal)));\n this.axis.y.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.vertical)));\n this.axis.x.scrollbar.el =\n ((_a = this.axis.x.track.el) === null || _a === void 0 ? void 0 : _a.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n this.axis.y.scrollbar.el =\n ((_b = this.axis.y.track.el) === null || _b === void 0 ? void 0 : _b.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n if (!this.options.autoHide) {\n addClasses(this.axis.x.scrollbar.el, this.classNames.visible);\n addClasses(this.axis.y.scrollbar.el, this.classNames.visible);\n }\n };\n SimpleBarCore.prototype.initListeners = function () {\n var _this = this;\n var _a;\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n this.el.addEventListener('pointerdown', this.onPointerEvent, true);\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', this.onScroll);\n // Browser zoom triggers a window resize\n elWindow.addEventListener('resize', this.onWindowResize);\n if (!this.contentEl)\n return;\n if (window.ResizeObserver) {\n // Hack for https://github.com/WICG/ResizeObserver/issues/38\n var resizeObserverStarted_1 = false;\n var resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n this.resizeObserver = new resizeObserver(function () {\n if (!resizeObserverStarted_1)\n return;\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n elWindow.requestAnimationFrame(function () {\n resizeObserverStarted_1 = true;\n });\n }\n // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n this.mutationObserver = new elWindow.MutationObserver(function () {\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n };\n SimpleBarCore.prototype.recalculate = function () {\n if (!this.heightAutoObserverEl ||\n !this.contentEl ||\n !this.contentWrapperEl ||\n !this.wrapperEl ||\n !this.placeholderEl)\n return;\n var elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n var contentElOffsetWidth = this.contentEl.offsetWidth;\n var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1 || contentElOffsetWidth > 0;\n var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n var elOverflowX = this.elStyles.overflowX;\n var elOverflowY = this.elStyles.overflowY;\n this.contentEl.style.padding = \"\".concat(this.elStyles.paddingTop, \" \").concat(this.elStyles.paddingRight, \" \").concat(this.elStyles.paddingBottom, \" \").concat(this.elStyles.paddingLeft);\n this.wrapperEl.style.margin = \"-\".concat(this.elStyles.paddingTop, \" -\").concat(this.elStyles.paddingRight, \" -\").concat(this.elStyles.paddingBottom, \" -\").concat(this.elStyles.paddingLeft);\n var contentElScrollHeight = this.contentEl.scrollHeight;\n var contentElScrollWidth = this.contentEl.scrollWidth;\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? \"\".concat(contentElOffsetWidth || contentElScrollWidth, \"px\")\n : 'auto';\n this.placeholderEl.style.height = \"\".concat(contentElScrollHeight, \"px\");\n var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n this.axis.x.isOverflowing =\n contentElOffsetWidth !== 0 && contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing =\n contentElScrollHeight > contentWrapperElOffsetHeight;\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n this.hideNativeScrollbar();\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n var offsetForXScrollbar = this.axis.x.isOverflowing\n ? this.scrollbarWidth\n : 0;\n var offsetForYScrollbar = this.axis.y.isOverflowing\n ? this.scrollbarWidth\n : 0;\n this.axis.x.isOverflowing =\n this.axis.x.isOverflowing &&\n contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing =\n this.axis.y.isOverflowing &&\n contentElScrollHeight >\n contentWrapperElOffsetHeight - offsetForXScrollbar;\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n if (this.axis.x.scrollbar.el)\n this.axis.x.scrollbar.el.style.width = \"\".concat(this.axis.x.scrollbar.size, \"px\");\n if (this.axis.y.scrollbar.el)\n this.axis.y.scrollbar.el.style.height = \"\".concat(this.axis.y.scrollbar.size, \"px\");\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n };\n /**\n * Calculate scrollbar size\n */\n SimpleBarCore.prototype.getScrollbarSize = function (axis) {\n var _a, _b;\n if (axis === void 0) { axis = 'y'; }\n if (!this.axis[axis].isOverflowing || !this.contentEl) {\n return 0;\n }\n var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n var trackSize = (_b = (_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbarRatio = trackSize / contentSize;\n var scrollbarSize;\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n return scrollbarSize;\n };\n SimpleBarCore.prototype.positionScrollbar = function (axis) {\n var _a, _b, _c;\n if (axis === void 0) { axis = 'y'; }\n var scrollbar = this.axis[axis].scrollbar;\n if (!this.axis[axis].isOverflowing ||\n !this.contentWrapperEl ||\n !scrollbar.el ||\n !this.elStyles) {\n return;\n }\n var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n var trackSize = ((_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) || 0;\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n ((_b = SimpleBarCore.getRtlHelpers()) === null || _b === void 0 ? void 0 : _b.isScrollOriginAtZero)\n ? -scrollOffset\n : scrollOffset;\n if (axis === 'x' && this.isRtl) {\n scrollOffset = ((_c = SimpleBarCore.getRtlHelpers()) === null || _c === void 0 ? void 0 : _c.isScrollingToNegative)\n ? scrollOffset\n : -scrollOffset;\n }\n var scrollPourcent = scrollOffset / (contentSize - hostSize);\n var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' && this.isRtl\n ? -handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n scrollbar.el.style.transform =\n axis === 'x'\n ? \"translate3d(\".concat(handleOffset, \"px, 0, 0)\")\n : \"translate3d(0, \".concat(handleOffset, \"px, 0)\");\n };\n SimpleBarCore.prototype.toggleTrackVisibility = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var track = this.axis[axis].track.el;\n var scrollbar = this.axis[axis].scrollbar.el;\n if (!track || !scrollbar || !this.contentWrapperEl)\n return;\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n this.el.classList.add(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n this.el.classList.remove(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n }\n else {\n scrollbar.style.display = 'none';\n }\n };\n SimpleBarCore.prototype.showScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.axis[axis].isOverflowing && !this.axis[axis].scrollbar.isVisible) {\n addClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = true;\n }\n };\n SimpleBarCore.prototype.hideScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.axis[axis].isOverflowing && this.axis[axis].scrollbar.isVisible) {\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = false;\n }\n };\n SimpleBarCore.prototype.hideNativeScrollbar = function () {\n if (!this.offsetEl)\n return;\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n };\n SimpleBarCore.prototype.onMouseMoveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!currentAxis.track.el || !currentAxis.scrollbar.el)\n return;\n currentAxis.track.rect = currentAxis.track.el.getBoundingClientRect();\n currentAxis.scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n if (this.isWithinBounds(currentAxis.track.rect)) {\n this.showScrollbar(axis);\n addClasses(currentAxis.track.el, this.classNames.hover);\n if (this.isWithinBounds(currentAxis.scrollbar.rect)) {\n addClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n else {\n removeClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n }\n else {\n removeClasses(currentAxis.track.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n }\n };\n SimpleBarCore.prototype.onMouseLeaveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n removeClasses(this.axis[axis].track.el, this.classNames.hover);\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n };\n /**\n * on scrollbar handle drag movement starts\n */\n SimpleBarCore.prototype.onDragStart = function (e, axis) {\n var _a;\n if (axis === void 0) { axis = 'y'; }\n var elDocument = getElementDocument(this.el);\n var elWindow = getElementWindow(this.el);\n var scrollbar = this.axis[axis].scrollbar;\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset - (((_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) || 0);\n this.draggedAxis = axis;\n addClasses(this.el, this.classNames.dragging);\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n }\n else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n };\n SimpleBarCore.prototype.onTrackClick = function (e, axis) {\n var _this = this;\n var _a, _b, _c, _d;\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!this.options.clickOnTrack ||\n !currentAxis.scrollbar.el ||\n !this.contentWrapperEl)\n return;\n // Preventing the event's default to trigger click underneath\n e.preventDefault();\n var elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n var scrollbar = this.axis[axis].scrollbar;\n var scrollbarOffset = (_b = (_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) !== null && _b !== void 0 ? _b : 0;\n var hostSize = parseInt((_d = (_c = this.elStyles) === null || _c === void 0 ? void 0 : _c[this.axis[axis].sizeAttr]) !== null && _d !== void 0 ? _d : '0px', 10);\n var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n var t = axis === 'y'\n ? this.mouseY - scrollbarOffset\n : this.mouseX - scrollbarOffset;\n var dir = t < 0 ? -1 : 1;\n var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n var speed = 40;\n var scrollTo = function () {\n if (!_this.contentWrapperEl)\n return;\n if (dir === -1) {\n if (scrolled > scrollSize) {\n scrolled -= speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n else {\n if (scrolled < scrollSize) {\n scrolled += speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n scrollTo();\n };\n /**\n * Getter for content element\n */\n SimpleBarCore.prototype.getContentElement = function () {\n return this.contentEl;\n };\n /**\n * Getter for original scrolling element\n */\n SimpleBarCore.prototype.getScrollElement = function () {\n return this.contentWrapperEl;\n };\n SimpleBarCore.prototype.removeListeners = function () {\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n this.el.removeEventListener('pointerdown', this.onPointerEvent, true);\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n elWindow.removeEventListener('resize', this.onWindowResize);\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n // Cancel all debounced functions\n this.onMouseMove.cancel();\n this.onWindowResize.cancel();\n this.onStopScrolling.cancel();\n this.onMouseEntered.cancel();\n };\n /**\n * Remove all listeners from DOM nodes\n */\n SimpleBarCore.prototype.unMount = function () {\n this.removeListeners();\n };\n /**\n * Check if mouse is within bounds\n */\n SimpleBarCore.prototype.isWithinBounds = function (bbox) {\n return (this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height);\n };\n /**\n * Find element children matches query\n */\n SimpleBarCore.prototype.findChild = function (el, query) {\n var matches = el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, function (child) {\n return matches.call(child, query);\n })[0];\n };\n SimpleBarCore.rtlHelpers = null;\n SimpleBarCore.defaultOptions = {\n forceVisible: false,\n clickOnTrack: true,\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n ariaLabel: 'scrollable content',\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging',\n scrolling: 'simplebar-scrolling',\n scrollable: 'simplebar-scrollable',\n mouseEntered: 'simplebar-mouse-entered'\n },\n scrollableNode: null,\n contentNode: null,\n autoHide: true\n };\n /**\n * Static functions\n */\n SimpleBarCore.getOptions = getOptions;\n SimpleBarCore.helpers = helpers;\n return SimpleBarCore;\n}());\n\nexport { SimpleBarCore as default };\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport SimpleBar from 'simplebar-core';\n\nclass SimplebarAngularComponent {\n constructor(elRef, zone) {\n this.zone = zone;\n this.options = {};\n this.elRef = elRef;\n this.ariaLabel =\n this.options.ariaLabel || SimpleBar.defaultOptions.ariaLabel;\n }\n ngOnInit() { }\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.SimpleBar = new SimpleBar(this.elRef.nativeElement, this.options || {});\n });\n }\n ngOnDestroy() {\n this.SimpleBar.unMount();\n this.SimpleBar = null;\n }\n}\nSimplebarAngularComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nSimplebarAngularComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.17\", type: SimplebarAngularComponent, selector: \"ngx-simplebar\", inputs: { options: \"options\" }, host: { attributes: { \"data-simplebar\": \"init\" } }, ngImport: i0, template: \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\", styles: [\"[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.simplebar-content:before,.simplebar-content:after{content:\\\" \\\";display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:\\\"\\\";background:black;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s .5s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition-delay:0s;transition-duration:0s}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-scrollbar:before{top:2px;bottom:2px;left:2px;right:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:0;bottom:0;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.simplebar-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:scrollbar!important}.simplebar-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}\\n\", \"ngx-simplebar{display:block}\\n\"], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'ngx-simplebar',\n host: { 'data-simplebar': 'init' },\n templateUrl: './simplebar-angular.component.html',\n styleUrls: [\n '../../../simplebar-core/src/simplebar.css',\n './simplebar-angular.component.scss',\n ],\n encapsulation: ViewEncapsulation.None,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { options: [{\n type: Input,\n args: ['options']\n }] } });\n\nclass SimplebarAngularModule {\n}\nSimplebarAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nSimplebarAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, declarations: [SimplebarAngularComponent], exports: [SimplebarAngularComponent] });\nSimplebarAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SimplebarAngularComponent],\n imports: [],\n exports: [SimplebarAngularComponent],\n schemas: [],\n }]\n }] });\n\n/*\n * Public API Surface of simplebar-angular\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SimplebarAngularComponent, SimplebarAngularModule };\n","/*!\n* sweetalert2 v11.10.5\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _construct(t, e, r) {\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && _setPrototypeOf(p, r.prototype), p;\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n }\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n }\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return _classApplyDescriptorGet(receiver, descriptor);\n }\n function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\");\n _classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n }\n function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n }\n function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n }\n function _classPrivateFieldInitSpec(obj, privateMap, value) {\n _checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n }\n\n var RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n var globalState = {};\n var focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n var restoreActiveElement = function restoreActiveElement(returnFocus) {\n return new Promise(function (resolve) {\n if (!returnFocus) {\n return resolve();\n }\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n var swalPrefix = 'swal2-';\n\n /**\n * @typedef\n * { | 'container'\n * | 'shown'\n * | 'height-auto'\n * | 'iosfix'\n * | 'popup'\n * | 'modal'\n * | 'no-backdrop'\n * | 'no-transition'\n * | 'toast'\n * | 'toast-shown'\n * | 'show'\n * | 'hide'\n * | 'close'\n * | 'title'\n * | 'html-container'\n * | 'actions'\n * | 'confirm'\n * | 'deny'\n * | 'cancel'\n * | 'default-outline'\n * | 'footer'\n * | 'icon'\n * | 'icon-content'\n * | 'image'\n * | 'input'\n * | 'file'\n * | 'range'\n * | 'select'\n * | 'radio'\n * | 'checkbox'\n * | 'label'\n * | 'textarea'\n * | 'inputerror'\n * | 'input-label'\n * | 'validation-message'\n * | 'progress-steps'\n * | 'active-progress-step'\n * | 'progress-step'\n * | 'progress-step-line'\n * | 'loader'\n * | 'loading'\n * | 'styled'\n * | 'top'\n * | 'top-start'\n * | 'top-end'\n * | 'top-left'\n * | 'top-right'\n * | 'center'\n * | 'center-start'\n * | 'center-end'\n * | 'center-left'\n * | 'center-right'\n * | 'bottom'\n * | 'bottom-start'\n * | 'bottom-end'\n * | 'bottom-left'\n * | 'bottom-right'\n * | 'grow-row'\n * | 'grow-column'\n * | 'grow-fullscreen'\n * | 'rtl'\n * | 'timer-progress-bar'\n * | 'timer-progress-bar-container'\n * | 'scrollbar-measure'\n * | 'icon-success'\n * | 'icon-warning'\n * | 'icon-info'\n * | 'icon-question'\n * | 'icon-error'\n * } SwalClass\n * @typedef {Record} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n var classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n var swalClasses = classNames.reduce(function (acc, className) {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n var icons = ['success', 'warning', 'info', 'question', 'error'];\n var iconTypes = icons.reduce(function (acc, icon) {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n var consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n var warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n var error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n var previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n var warnOnce = function warnOnce(message) {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string} useInstead\n */\n var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n var callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var hasToPromiseFn = function hasToPromiseFn(arg) {\n return arg && typeof arg.toPromise === 'function';\n };\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n var asPromise = function asPromise(arg) {\n return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n };\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n var getContainer = function getContainer() {\n return document.body.querySelector(\".\".concat(swalClasses.container));\n };\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n var elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n var elementByClass = function elementByClass(className) {\n return elementBySelector(\".\".concat(className));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIcon = function getIcon() {\n return elementByClass(swalClasses.icon);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIconContent = function getIconContent() {\n return elementByClass(swalClasses['icon-content']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getHtmlContainer = function getHtmlContainer() {\n return elementByClass(swalClasses['html-container']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getImage = function getImage() {\n return elementByClass(swalClasses.image);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getConfirmButton = function getConfirmButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getCancelButton = function getCancelButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getDenyButton = function getDenyButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getInputLabel = function getInputLabel() {\n return elementByClass(swalClasses['input-label']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getLoader = function getLoader() {\n return elementBySelector(\".\".concat(swalClasses.loader));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTimerProgressBar = function getTimerProgressBar() {\n return elementByClass(swalClasses['timer-progress-bar']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n };\n\n // https://github.com/jkup/focusable/blob/master/index.js\n var focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n var getFocusableElements = function getFocusableElements() {\n var popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf} */\n var focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n var focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort(function (a, b) {\n var tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n var tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf} */\n var otherFocusableElements = popup.querySelectorAll(focusable);\n var otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return _toConsumableArray(new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))).filter(function (el) {\n return isVisible$1(el);\n });\n };\n\n /**\n * @returns {boolean}\n */\n var isModal = function isModal() {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n var isToast = function isToast() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n var isLoading = function isLoading() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n var setInnerHtml = function setInnerHtml(elem, html) {\n elem.textContent = '';\n if (html) {\n var parser = new DOMParser();\n var parsed = parser.parseFromString(html, \"text/html\");\n var head = parsed.querySelector('head');\n head && Array.from(head.childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n var body = parsed.querySelector('body');\n body && Array.from(body.childNodes).forEach(function (child) {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n var hasClass = function hasClass(elem, className) {\n if (!className) {\n return false;\n }\n var classList = className.split(/\\s+/);\n for (var i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n var removeCustomClasses = function removeCustomClasses(elem, params) {\n Array.from(elem.classList).forEach(function (className) {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n var applyCustomClass = function applyCustomClass(elem, params, className) {\n removeCustomClasses(elem, params);\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(params.customClass[className]), \"\\\"\"));\n return;\n }\n addClass(elem, params.customClass[className]);\n }\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n var getInput$1 = function getInput(popup, inputClass) {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n var focusInput = function focusInput(input) {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n var toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(function (className) {\n if (Array.isArray(target)) {\n target.forEach(function (elem) {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n var getDirectChildByClass = function getDirectChildByClass(elem, className) {\n var children = Array.from(elem.children);\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? \"\".concat(value, \"px\") : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem && (elem.style.display = display);\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n var hide = function hide(elem) {\n elem && (elem.style.display = 'none');\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var showWhenInnerHtmlPresent = function showWhenInnerHtmlPresent(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(function () {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n var setStyle = function setStyle(parent, selector, property, value) {\n /** @type {HTMLElement | null} */\n var el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n var toggle = function toggle(elem, condition) {\n var display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n var isVisible$1 = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n };\n\n /**\n * @returns {boolean}\n */\n var allButtonsAreHidden = function allButtonsAreHidden() {\n return !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n };\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n };\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(function () {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n var stopTimerProgressBar = function stopTimerProgressBar() {\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n var timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n var isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n };\n\n var sweetHTML = \"\\n
\\n \\n
    \\n
    \\n \\n

    \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\").replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n var resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n var resetValidationMessage$1 = function resetValidationMessage() {\n globalState.currentInstance.resetValidationMessage();\n };\n var addInputChangeListeners = function addInputChangeListeners() {\n var popup = getPopup();\n var input = getDirectChildByClass(popup, swalClasses.input);\n var file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n var range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n var rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n var checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n var getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n var setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n var init = function init(params) {\n // Clean up the old popup container if it exists\n var oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n var container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (_typeof(param) === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n var handleObject = function handleObject(param, target) {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n var handleJqueryElem = function handleJqueryElem(target, elem) {\n target.textContent = '';\n if (0 in elem) {\n for (var i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n var animationEndEvent = function () {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n var testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n var buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[\"show\".concat(buttonName, \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")] || ''); // Set caption text\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[\"grow-\".concat(grow)]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /** @type {InputClass[]} */\n var inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderInput = function renderInput(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(function (inputClass) {\n var inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var showInput = function showInput(params) {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(\"Unexpected type of input! Expected \".concat(Object.keys(renderInputType).join(' | '), \", got \\\"\").concat(params.input, \"\\\"\"));\n return;\n }\n var inputContainer = getInputContainer(params.input);\n var input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(function () {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n var removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n var setAttributes = function setAttributes(inputClass, inputAttributes) {\n var input = getInput$1(getPopup(), inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (var attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setCustomClass = function setCustomClass(params) {\n var inputContainer = getInputContainer(params.input);\n if (_typeof(params.customClass) === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n var setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n var setInputLabel = function setInputLabel(input, prependTo, params) {\n if (params.inputLabel) {\n var label = document.createElement('label');\n var labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (_typeof(params.customClass) === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n var getInputContainer = function getInputContainer(inputType) {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n var checkAndSetInputValue = function checkAndSetInputValue(input, inputValue) {\n if (['string', 'number'].includes(_typeof(inputValue))) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(inputValue), \"\\\"\"));\n }\n };\n\n /** @type {Record Input>} */\n var renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = function (input, params) {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = function (input, params) {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = function (range, params) {\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = function (select, params) {\n select.textContent = '';\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = function (radio) {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = function (checkboxContainer, params) {\n var checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n var label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = function (textarea, params) {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n var getMargin = function getMargin(el) {\n return parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n };\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(function () {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n var textareaResizeHandler = function textareaResizeHandler() {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n var textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContent = function renderContent(instance, params) {\n var htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance);\n var icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var applyStyles = function applyStyles(icon, params) {\n for (var _i = 0, _Object$entries = Object.entries(iconTypes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n iconType = _Object$entries$_i[0],\n iconClassName = _Object$entries$_i[1];\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n var adjustSuccessIconBackgroundColor = function adjustSuccessIconBackgroundColor() {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n var successIconHtml = \"\\n
    \\n \\n
    \\n
    \\n\";\n var errorIconHtml = \"\\n \\n \\n \\n \\n\";\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setContent = function setContent(icon, params) {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n var oldContent = icon.innerHTML;\n var newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n var defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setColor = function setColor(icon, params) {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (var _i2 = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i2 < _arr.length; _i2++) {\n var sel = _arr[_i2];\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n var iconContent = function iconContent(content) {\n return \"
    \").concat(content, \"
    \");\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderImage = function renderImage(instance, params) {\n var image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderPopup = function renderPopup(instance, params) {\n var container = getContainer();\n var popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n var loader = getLoader();\n loader && popup.insertBefore(loader, getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses$1 = function addClasses(popup, params) {\n var showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible$1(popup) ? showClass.popup : '');\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n var progressSteps = params.progressSteps,\n currentProgressStep = params.currentProgressStep;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n var lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n var createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n var createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n var popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n var isVisible = function isVisible() {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n var clickConfirm = function clickConfirm() {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n var clickDeny = function clickDeny() {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n var clickCancel = function clickCancel() {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record} */\n var DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n var removeKeydownHandler = function removeKeydownHandler(globalState) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n var addKeydownHandler = function addKeydownHandler(globalState, innerParams, dismissWith) {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(innerParams, e, dismissWith);\n };\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n var setFocus = function setFocus(index, increment) {\n var _dom$getPopup;\n var focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n var arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n var keydownHandler = function keydownHandler(innerParams, event, dismissWith) {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n var handleEnter = function handleEnter(event, innerParams) {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n var input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n var handleTab = function handleTab(event) {\n var targetElement = event.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n var handleArrows = function handleArrows(key) {\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n var buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n var sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n var buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (var i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var handleEsc = function handleEsc(event, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n var setAriaHidden = function setAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n var unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n var isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n var iOSfix = function iOSfix() {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n var lockBodyScroll = function lockBodyScroll() {\n var container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n var preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = function (event) {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = function (event) {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n var target = event.target;\n var container = getContainer();\n var htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n var isStylus = function isStylus(event) {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var isZoom = function isZoom(event) {\n return event.touches && event.touches.length > 1;\n };\n var undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n var previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n var replaceScrollbarWithPadding = function replaceScrollbarWithPadding(initialBodyOverflow) {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n var undoReplaceScrollbarWithPadding = function undoReplaceScrollbarWithPadding() {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(previousBodyPadding, \"px\");\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(function () {\n return triggerDidCloseAndDispose(instance, didClose);\n });\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n var didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n var triggerClosePopup = function triggerClosePopup(instance) {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n var backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n var rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var handleAwaitingPromise = function handleAwaitingPromise(instance) {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n var prepareResolveValue = function prepareResolveValue(resolveValue) {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer();\n // If animation is supported, animate\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n setTimeout(function () {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var showLoading = function showLoading(buttonToReplace) {\n var popup = getPopup();\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n var loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var replaceButton = function replaceButton(popup, buttonToReplace) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(function (i) {\n return i === params.input;\n }) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n var getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n var getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n var getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n var getFileValue = function getFileValue(input) {\n return input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptions = function handleInputOptions(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record} inputOptions\n */\n var processInputOptions = function processInputOptions(inputOptions) {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(function (inputValue) {\n input.value = params.input === 'number' ? \"\".concat(parseFloat(inputValue) || 0) : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n var select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n var renderOption = function renderOption(parent, optionLabel, optionValue) {\n var option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n var optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(function (o) {\n return renderOption(optgroup, o[1], o[0]);\n });\n } else {\n // case of